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-centos9-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=1020gid=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 Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.src.rpm 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-centos9-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=1020gid=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 Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.src.rpm 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-centos9-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=1020gid=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 Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.le6VDa + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ironic-29.1.0.dev120 + /usr/bin/gzip -dc /builddir/build/SOURCES/ironic-29.1.0.dev120-0.20250522181724.3387a8f.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd ironic-29.1.0.dev120 + /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' + 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.3czo7b + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + 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.dev120/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir + RPM_TOXENV=py39 + 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.dev120/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64-pyproject-buildrequires -t -e py39 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 65.5.1) 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.1.1) Exiting dependency generation pass: get_requires_for_build_wheel + cat /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.buildreqs.nosrc.rpm 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-centos9-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=1020gid=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 Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.AykKKt + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + 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.dev120/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir + RPM_TOXENV=py39 + 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.dev120/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64-pyproject-buildrequires -t -e py39 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 65.5.1) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.36.2) Handling pbr>=6.0.0 from get_requires_for_build_wheel Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) 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.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.buildreqs.nosrc.rpm 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-centos9-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=1020gid=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 Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.fVRpxR + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + 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.dev120/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir + RPM_TOXENV=py39 + 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.dev120/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64-pyproject-buildrequires -t -e py39 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 65.5.1) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.36.2) Handling pbr>=6.0.0 from get_requires_for_build_wheel Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling tox-current-env >= 0.0.6 from tox itself Requirement satisfied: tox-current-env >= 0.0.6 (installed: tox-current-env 0.0.8) ___________________________________ summary ____________________________________ py39: commands succeeded congratulations :) Handling pbr>=6.0.0 from tox --print-deps-only: py39 Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py39 Requirement satisfied: SQLAlchemy>=1.4.0 (installed: SQLAlchemy 2.0.38) Handling alembic>=1.4.2 from tox --print-deps-only: py39 Requirement satisfied: alembic>=1.4.2 (installed: alembic 1.14.1) Handling automaton>=1.9.0 from tox --print-deps-only: py39 Requirement not satisfied: automaton>=1.9.0 Handling eventlet>=0.30.1 from tox --print-deps-only: py39 Requirement satisfied: eventlet>=0.30.1 (installed: eventlet 0.36.1) Handling WebOb>=1.7.1 from tox --print-deps-only: py39 Requirement not satisfied: WebOb>=1.7.1 Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py39 Requirement not satisfied: keystoneauth1>=4.2.0 Handling stevedore>=1.29.0 from tox --print-deps-only: py39 Requirement satisfied: stevedore>=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.concurrency>=4.2.0 Handling oslo.config>=6.8.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.config>=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context>=2.22.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.context>=2.22.0 Handling oslo.db>=9.1.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.db>=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.rootwrap>=5.8.0 Handling oslo.log>=4.3.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.log>=4.3.0 Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.middleware>=3.31.0 Handling oslo.policy>=4.5.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.policy>=4.5.0 Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.serialization>=2.25.0 Handling oslo.service>=1.24.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.service>=1.24.0 Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.upgradecheck>=1.3.0 Handling oslo.utils>=8.0.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.utils>=8.0.0 (installed: oslo.utils 8.2.0) Handling osprofiler>=1.5.0 from tox --print-deps-only: py39 Requirement not satisfied: osprofiler>=1.5.0 Handling os-traits>=0.4.0 from tox --print-deps-only: py39 Requirement not satisfied: os-traits>=0.4.0 Handling pecan>=1.0.0 from tox --print-deps-only: py39 Requirement not satisfied: pecan>=1.0.0 Handling pycdlib>=1.11.0 from tox --print-deps-only: py39 Requirement not satisfied: pycdlib>=1.11.0 Handling requests>=2.18.0 from tox --print-deps-only: py39 Requirement satisfied: requests>=2.18.0 (installed: requests 2.32.3) Handling rfc3986>=1.2.0 from tox --print-deps-only: py39 Requirement satisfied: rfc3986>=1.2.0 (installed: rfc3986 2.0.0) Handling jsonpatch>=1.16 from tox --print-deps-only: py39 Requirement not satisfied: jsonpatch>=1.16 Handling Jinja2>=3.0.0 from tox --print-deps-only: py39 Requirement satisfied: Jinja2>=3.0.0 (installed: Jinja2 3.0.1) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py39 Requirement not satisfied: keystonemiddleware>=9.5.0 Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.messaging>=14.1.0 Handling tenacity>=6.3.1 from tox --print-deps-only: py39 Requirement not satisfied: tenacity>=6.3.1 Handling oslo.versionedobjects>=1.31.2 from tox --print-deps-only: py39 Requirement not satisfied: oslo.versionedobjects>=1.31.2 Handling jsonschema>=4.0.0 from tox --print-deps-only: py39 Requirement not satisfied: jsonschema>=4.0.0 Handling psutil>=3.2.2 from tox --print-deps-only: py39 Requirement satisfied: psutil>=3.2.2 (installed: psutil 5.8.0) Handling futurist>=1.2.0 from tox --print-deps-only: py39 Requirement not satisfied: futurist>=1.2.0 Handling tooz>=2.7.0 from tox --print-deps-only: py39 Requirement not satisfied: tooz>=2.7.0 Handling openstacksdk>=0.99.0 from tox --print-deps-only: py39 Requirement not satisfied: openstacksdk>=0.99.0 Handling sushy>=4.8.0 from tox --print-deps-only: py39 Requirement not satisfied: sushy>=4.8.0 Handling construct>=2.9.39 from tox --print-deps-only: py39 Requirement not satisfied: construct>=2.9.39 Handling netaddr from tox --print-deps-only: py39 Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse>=1.0.1 from tox --print-deps-only: py39 Requirement not satisfied: microversion-parse>=1.0.1 Handling zeroconf>=0.24.0 from tox --print-deps-only: py39 Requirement not satisfied: zeroconf>=0.24.0 Handling os-service-types>=1.7.0 from tox --print-deps-only: py39 Requirement not satisfied: os-service-types>=1.7.0 Handling bcrypt>=3.1.3 from tox --print-deps-only: py39 Requirement not satisfied: bcrypt>=3.1.3 Handling websockify>=0.9.0 from tox --print-deps-only: py39 Requirement not satisfied: websockify>=0.9.0 Handling PyYAML from tox --print-deps-only: py39 Requirement satisfied: PyYAML (installed: PyYAML 5.4.1) Handling coverage>=4.0 from tox --print-deps-only: py39 Requirement not satisfied: coverage>=4.0 Handling ddt>=1.2.1 from tox --print-deps-only: py39 Requirement not satisfied: ddt>=1.2.1 Handling fixtures>=3.0.0 from tox --print-deps-only: py39 Requirement satisfied: fixtures>=3.0.0 (installed: fixtures 4.1.0) Handling PyMySQL>=0.8.0 from tox --print-deps-only: py39 Requirement satisfied: PyMySQL>=0.8.0 (installed: PyMySQL 0.10.1) Handling oslo.reports>=1.18.0 from tox --print-deps-only: py39 Requirement not satisfied: oslo.reports>=1.18.0 Handling oslotest>=3.2.0 from tox --print-deps-only: py39 Requirement satisfied: oslotest>=3.2.0 (installed: oslotest 5.0.1) Handling stestr>=2.0.0 from tox --print-deps-only: py39 Requirement not satisfied: stestr>=2.0.0 Handling testtools>=2.5.0 from tox --print-deps-only: py39 Requirement satisfied: testtools>=2.5.0 (installed: testtools 2.7.1) Handling WebTest>=2.0.27 from tox --print-deps-only: py39 Requirement not satisfied: WebTest>=2.0.27 Handling pysnmp-lextudio>=5.0.0 from tox --print-deps-only: py39 Requirement not satisfied: pysnmp-lextudio>=5.0.0 Handling pyasn1>=0.5.1 from tox --print-deps-only: py39 Requirement not satisfied: pyasn1>=0.5.1 Handling pyasn1-modules>=0.3.0 from tox --print-deps-only: py39 Requirement not satisfied: pyasn1-modules>=0.3.0 /usr/lib/python3.9/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( /usr/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( 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.dev120/ironic-29.1.0.dev120.dist-info' adding license file "LICENSE" (matched pattern "LICEN[CS]E*") adding license file "AUTHORS" (matched pattern "AUTHORS*") Handling pbr (>=6.0.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pbr (>=6.0.0) (installed: pbr 6.1.1) Handling SQLAlchemy (>=1.4.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: SQLAlchemy (>=1.4.0) (installed: SQLAlchemy 2.0.38) Handling alembic (>=1.4.2) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: alembic (>=1.4.2) (installed: alembic 1.14.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.2.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 2.0.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.0.1) 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.8.0) 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 5.4.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.20250522181724.3387a8f.el9.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev120.dist-info/ removed 'ironic-29.1.0.dev120.dist-info/AUTHORS' removed 'ironic-29.1.0.dev120.dist-info/LICENSE' removed 'ironic-29.1.0.dev120.dist-info/METADATA' removed 'ironic-29.1.0.dev120.dist-info/entry_points.txt' removed 'ironic-29.1.0.dev120.dist-info/pbr.json' removed 'ironic-29.1.0.dev120.dist-info/top_level.txt' removed directory 'ironic-29.1.0.dev120.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.buildreqs.nosrc.rpm 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-centos9-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=1020gid=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 Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.aPPpQZ + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + 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.dev120/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir + RPM_TOXENV=py39 + 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.dev120/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64-pyproject-buildrequires -t -e py39 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 65.5.1) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.36.2) Handling pbr>=6.0.0 from get_requires_for_build_wheel Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling tox-current-env >= 0.0.6 from tox itself Requirement satisfied: tox-current-env >= 0.0.6 (installed: tox-current-env 0.0.8) ___________________________________ summary ____________________________________ py39: commands succeeded congratulations :) Handling pbr>=6.0.0 from tox --print-deps-only: py39 Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py39 Requirement satisfied: SQLAlchemy>=1.4.0 (installed: SQLAlchemy 2.0.38) Handling alembic>=1.4.2 from tox --print-deps-only: py39 Requirement satisfied: alembic>=1.4.2 (installed: alembic 1.14.1) Handling automaton>=1.9.0 from tox --print-deps-only: py39 Requirement satisfied: automaton>=1.9.0 (installed: automaton 3.2.0) Handling eventlet>=0.30.1 from tox --print-deps-only: py39 Requirement satisfied: eventlet>=0.30.1 (installed: eventlet 0.36.1) Handling WebOb>=1.7.1 from tox --print-deps-only: py39 Requirement satisfied: WebOb>=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py39 Requirement satisfied: keystoneauth1>=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore>=1.29.0 from tox --print-deps-only: py39 Requirement satisfied: stevedore>=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.concurrency>=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config>=6.8.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.config>=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context>=2.22.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.context>=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db>=9.1.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.db>=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.rootwrap>=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log>=4.3.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.log>=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.middleware>=3.31.0 (installed: oslo.middleware 6.5.0) Handling oslo.policy>=4.5.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.policy>=4.5.0 (installed: oslo.policy 4.5.1) Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.serialization>=2.25.0 (installed: oslo.serialization 5.7.0) Handling oslo.service>=1.24.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.service>=1.24.0 (installed: oslo.service 4.1.1) Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.upgradecheck>=1.3.0 (installed: oslo.upgradecheck 2.5.0) Handling oslo.utils>=8.0.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.utils>=8.0.0 (installed: oslo.utils 8.2.0) Handling osprofiler>=1.5.0 from tox --print-deps-only: py39 Requirement satisfied: osprofiler>=1.5.0 (installed: osprofiler 4.2.0) Handling os-traits>=0.4.0 from tox --print-deps-only: py39 Requirement satisfied: os-traits>=0.4.0 (installed: os-traits 3.5.0) Handling pecan>=1.0.0 from tox --print-deps-only: py39 Requirement satisfied: pecan>=1.0.0 (installed: pecan 1.5.1) Handling pycdlib>=1.11.0 from tox --print-deps-only: py39 Requirement satisfied: pycdlib>=1.11.0 (installed: pycdlib 1.11.0) Handling requests>=2.18.0 from tox --print-deps-only: py39 Requirement satisfied: requests>=2.18.0 (installed: requests 2.32.3) Handling rfc3986>=1.2.0 from tox --print-deps-only: py39 Requirement satisfied: rfc3986>=1.2.0 (installed: rfc3986 2.0.0) Handling jsonpatch>=1.16 from tox --print-deps-only: py39 Requirement satisfied: jsonpatch>=1.16 (installed: jsonpatch 1.21) Handling Jinja2>=3.0.0 from tox --print-deps-only: py39 Requirement satisfied: Jinja2>=3.0.0 (installed: Jinja2 3.0.1) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py39 Requirement satisfied: keystonemiddleware>=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.messaging>=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity>=6.3.1 from tox --print-deps-only: py39 Requirement satisfied: tenacity>=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects>=1.31.2 from tox --print-deps-only: py39 Requirement satisfied: oslo.versionedobjects>=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema>=4.0.0 from tox --print-deps-only: py39 Requirement satisfied: jsonschema>=4.0.0 (installed: jsonschema 4.16.0) Handling psutil>=3.2.2 from tox --print-deps-only: py39 Requirement satisfied: psutil>=3.2.2 (installed: psutil 5.8.0) Handling futurist>=1.2.0 from tox --print-deps-only: py39 Requirement satisfied: futurist>=1.2.0 (installed: futurist 3.1.1) Handling tooz>=2.7.0 from tox --print-deps-only: py39 Requirement satisfied: tooz>=2.7.0 (installed: tooz 6.3.0) Handling openstacksdk>=0.99.0 from tox --print-deps-only: py39 Requirement satisfied: openstacksdk>=0.99.0 (installed: openstacksdk 4.5.0) Handling sushy>=4.8.0 from tox --print-deps-only: py39 Requirement satisfied: sushy>=4.8.0 (installed: sushy 5.6.0) Handling construct>=2.9.39 from tox --print-deps-only: py39 Requirement satisfied: construct>=2.9.39 (installed: construct 2.10.70) Handling netaddr from tox --print-deps-only: py39 Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse>=1.0.1 from tox --print-deps-only: py39 Requirement satisfied: microversion-parse>=1.0.1 (installed: microversion-parse 2.0.0) Handling zeroconf>=0.24.0 from tox --print-deps-only: py39 Requirement satisfied: zeroconf>=0.24.0 (installed: zeroconf 0.38.7) Handling os-service-types>=1.7.0 from tox --print-deps-only: py39 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: py39 Requirement satisfied: bcrypt>=3.1.3 (installed: bcrypt 3.2.2) Handling websockify>=0.9.0 from tox --print-deps-only: py39 Requirement satisfied: websockify>=0.9.0 (installed: websockify 0.12.0) Handling PyYAML from tox --print-deps-only: py39 Requirement satisfied: PyYAML (installed: PyYAML 5.4.1) Handling coverage>=4.0 from tox --print-deps-only: py39 Requirement satisfied: coverage>=4.0 (installed: coverage 7.3.2) Handling ddt>=1.2.1 from tox --print-deps-only: py39 Requirement satisfied: ddt>=1.2.1 (installed: ddt 1.6.0) Handling fixtures>=3.0.0 from tox --print-deps-only: py39 Requirement satisfied: fixtures>=3.0.0 (installed: fixtures 4.1.0) Handling PyMySQL>=0.8.0 from tox --print-deps-only: py39 Requirement satisfied: PyMySQL>=0.8.0 (installed: PyMySQL 0.10.1) Handling oslo.reports>=1.18.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.reports>=1.18.0 (installed: oslo.reports 3.5.1) Handling oslotest>=3.2.0 from tox --print-deps-only: py39 Requirement satisfied: oslotest>=3.2.0 (installed: oslotest 5.0.1) Handling stestr>=2.0.0 from tox --print-deps-only: py39 Requirement satisfied: stestr>=2.0.0 (installed: stestr 4.1.0) Handling testtools>=2.5.0 from tox --print-deps-only: py39 Requirement satisfied: testtools>=2.5.0 (installed: testtools 2.7.1) Handling WebTest>=2.0.27 from tox --print-deps-only: py39 Requirement satisfied: WebTest>=2.0.27 (installed: WebTest 3.0.0) Handling pysnmp-lextudio>=5.0.0 from tox --print-deps-only: py39 Requirement satisfied: pysnmp-lextudio>=5.0.0 (installed: pysnmp-lextudio 5.0.26) Handling pyasn1>=0.5.1 from tox --print-deps-only: py39 Requirement satisfied: pyasn1>=0.5.1 (installed: pyasn1 0.6.0) Handling pyasn1-modules>=0.3.0 from tox --print-deps-only: py39 Requirement satisfied: pyasn1-modules>=0.3.0 (installed: pyasn1-modules 0.4.0) /usr/lib/python3.9/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( /usr/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( 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.dev120/ironic-29.1.0.dev120.dist-info' adding license file "LICENSE" (matched pattern "LICEN[CS]E*") adding license file "AUTHORS" (matched pattern "AUTHORS*") Handling pbr (>=6.0.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pbr (>=6.0.0) (installed: pbr 6.1.1) Handling SQLAlchemy (>=1.4.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: SQLAlchemy (>=1.4.0) (installed: SQLAlchemy 2.0.38) Handling alembic (>=1.4.2) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: alembic (>=1.4.2) (installed: alembic 1.14.1) Handling automaton (>=1.9.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: automaton (>=1.9.0) (installed: automaton 3.2.0) Handling eventlet (>=0.30.1) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: eventlet (>=0.30.1) (installed: eventlet 0.36.1) Handling WebOb (>=1.7.1) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: WebOb (>=1.7.1) (installed: WebOb 1.8.9) Handling keystoneauth1 (>=4.2.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystoneauth1 (>=4.2.0) (installed: keystoneauth1 5.10.0) Handling stevedore (>=1.29.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: stevedore (>=1.29.0) (installed: stevedore 5.4.1) Handling oslo.concurrency (>=4.2.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.concurrency (>=4.2.0) (installed: oslo.concurrency 7.1.0) Handling oslo.config (>=6.8.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.config (>=6.8.0) (installed: oslo.config 9.7.1) Handling oslo.context (>=2.22.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.context (>=2.22.0) (installed: oslo.context 5.7.1) Handling oslo.db (>=9.1.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.db (>=9.1.0) (installed: oslo.db 17.2.1) Handling oslo.rootwrap (>=5.8.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.rootwrap (>=5.8.0) (installed: oslo.rootwrap 7.5.1) Handling oslo.log (>=4.3.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.log (>=4.3.0) (installed: oslo.log 7.1.0) Handling oslo.middleware (>=3.31.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.middleware (>=3.31.0) (installed: oslo.middleware 6.5.0) Handling oslo.policy (>=4.5.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.policy (>=4.5.0) (installed: oslo.policy 4.5.1) Handling oslo.serialization (>=2.25.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.serialization (>=2.25.0) (installed: oslo.serialization 5.7.0) Handling oslo.service (>=1.24.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.service (>=1.24.0) (installed: oslo.service 4.1.1) Handling oslo.upgradecheck (>=1.3.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.upgradecheck (>=1.3.0) (installed: oslo.upgradecheck 2.5.0) Handling oslo.utils (>=8.0.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.utils (>=8.0.0) (installed: oslo.utils 8.2.0) Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: osprofiler (>=1.5.0) (installed: osprofiler 4.2.0) Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: os-traits (>=0.4.0) (installed: os-traits 3.5.0) Handling pecan (>=1.0.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pecan (>=1.0.0) (installed: pecan 1.5.1) Handling pycdlib (>=1.11.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pycdlib (>=1.11.0) (installed: pycdlib 1.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 2.0.0) Handling jsonpatch (>=1.16) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonpatch (>=1.16) (installed: jsonpatch 1.21) Handling Jinja2 (>=3.0.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: Jinja2 (>=3.0.0) (installed: Jinja2 3.0.1) 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.16.0) Handling psutil (>=3.2.2) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: psutil (>=3.2.2) (installed: psutil 5.8.0) Handling futurist (>=1.2.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: futurist (>=1.2.0) (installed: futurist 3.1.1) Handling tooz (>=2.7.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: tooz (>=2.7.0) (installed: tooz 6.3.0) Handling openstacksdk (>=0.99.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: openstacksdk (>=0.99.0) (installed: openstacksdk 4.5.0) Handling sushy (>=4.8.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: sushy (>=4.8.0) (installed: sushy 5.6.0) Handling construct (>=2.9.39) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: construct (>=2.9.39) (installed: construct 2.10.70) Handling netaddr from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse (>=1.0.1) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: microversion-parse (>=1.0.1) (installed: microversion-parse 2.0.0) Handling zeroconf (>=0.24.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: zeroconf (>=0.24.0) (installed: zeroconf 0.38.7) 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 5.4.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.20250522181724.3387a8f.el9.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev120.dist-info/ removed 'ironic-29.1.0.dev120.dist-info/AUTHORS' removed 'ironic-29.1.0.dev120.dist-info/LICENSE' removed 'ironic-29.1.0.dev120.dist-info/METADATA' removed 'ironic-29.1.0.dev120.dist-info/top_level.txt' removed 'ironic-29.1.0.dev120.dist-info/pbr.json' removed 'ironic-29.1.0.dev120.dist-info/entry_points.txt' removed directory 'ironic-29.1.0.dev120.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.buildreqs.nosrc.rpm 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-centos9-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=1020gid=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 Building target platforms: x86_64 Building for target x86_64 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.pKzcAK + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + 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.dev120/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir + RPM_TOXENV=py39 + 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.dev120/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64-pyproject-buildrequires -t -e py39 Handling pbr>=6.0.0 from build-system.requires Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling setuptools>=64.0.0 from build-system.requires Requirement satisfied: setuptools>=64.0.0 (installed: setuptools 65.5.1) Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.36.2) Handling pbr>=6.0.0 from get_requires_for_build_wheel Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling tox-current-env >= 0.0.6 from tox itself Requirement satisfied: tox-current-env >= 0.0.6 (installed: tox-current-env 0.0.8) ___________________________________ summary ____________________________________ py39: commands succeeded congratulations :) Handling pbr>=6.0.0 from tox --print-deps-only: py39 Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.1.1) Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py39 Requirement satisfied: SQLAlchemy>=1.4.0 (installed: SQLAlchemy 2.0.38) Handling alembic>=1.4.2 from tox --print-deps-only: py39 Requirement satisfied: alembic>=1.4.2 (installed: alembic 1.14.1) Handling automaton>=1.9.0 from tox --print-deps-only: py39 Requirement satisfied: automaton>=1.9.0 (installed: automaton 3.2.0) Handling eventlet>=0.30.1 from tox --print-deps-only: py39 Requirement satisfied: eventlet>=0.30.1 (installed: eventlet 0.36.1) Handling WebOb>=1.7.1 from tox --print-deps-only: py39 Requirement satisfied: WebOb>=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py39 Requirement satisfied: keystoneauth1>=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore>=1.29.0 from tox --print-deps-only: py39 Requirement satisfied: stevedore>=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.concurrency>=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config>=6.8.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.config>=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context>=2.22.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.context>=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db>=9.1.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.db>=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.rootwrap>=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log>=4.3.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.log>=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.middleware>=3.31.0 (installed: oslo.middleware 6.5.0) Handling oslo.policy>=4.5.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.policy>=4.5.0 (installed: oslo.policy 4.5.1) Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.serialization>=2.25.0 (installed: oslo.serialization 5.7.0) Handling oslo.service>=1.24.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.service>=1.24.0 (installed: oslo.service 4.1.1) Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.upgradecheck>=1.3.0 (installed: oslo.upgradecheck 2.5.0) Handling oslo.utils>=8.0.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.utils>=8.0.0 (installed: oslo.utils 8.2.0) Handling osprofiler>=1.5.0 from tox --print-deps-only: py39 Requirement satisfied: osprofiler>=1.5.0 (installed: osprofiler 4.2.0) Handling os-traits>=0.4.0 from tox --print-deps-only: py39 Requirement satisfied: os-traits>=0.4.0 (installed: os-traits 3.5.0) Handling pecan>=1.0.0 from tox --print-deps-only: py39 Requirement satisfied: pecan>=1.0.0 (installed: pecan 1.5.1) Handling pycdlib>=1.11.0 from tox --print-deps-only: py39 Requirement satisfied: pycdlib>=1.11.0 (installed: pycdlib 1.11.0) Handling requests>=2.18.0 from tox --print-deps-only: py39 Requirement satisfied: requests>=2.18.0 (installed: requests 2.32.3) Handling rfc3986>=1.2.0 from tox --print-deps-only: py39 Requirement satisfied: rfc3986>=1.2.0 (installed: rfc3986 2.0.0) Handling jsonpatch>=1.16 from tox --print-deps-only: py39 Requirement satisfied: jsonpatch>=1.16 (installed: jsonpatch 1.21) Handling Jinja2>=3.0.0 from tox --print-deps-only: py39 Requirement satisfied: Jinja2>=3.0.0 (installed: Jinja2 3.0.1) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py39 Requirement satisfied: keystonemiddleware>=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.messaging>=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity>=6.3.1 from tox --print-deps-only: py39 Requirement satisfied: tenacity>=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects>=1.31.2 from tox --print-deps-only: py39 Requirement satisfied: oslo.versionedobjects>=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema>=4.0.0 from tox --print-deps-only: py39 Requirement satisfied: jsonschema>=4.0.0 (installed: jsonschema 4.16.0) Handling psutil>=3.2.2 from tox --print-deps-only: py39 Requirement satisfied: psutil>=3.2.2 (installed: psutil 5.8.0) Handling futurist>=1.2.0 from tox --print-deps-only: py39 Requirement satisfied: futurist>=1.2.0 (installed: futurist 3.1.1) Handling tooz>=2.7.0 from tox --print-deps-only: py39 Requirement satisfied: tooz>=2.7.0 (installed: tooz 6.3.0) Handling openstacksdk>=0.99.0 from tox --print-deps-only: py39 Requirement satisfied: openstacksdk>=0.99.0 (installed: openstacksdk 4.5.0) Handling sushy>=4.8.0 from tox --print-deps-only: py39 Requirement satisfied: sushy>=4.8.0 (installed: sushy 5.6.0) Handling construct>=2.9.39 from tox --print-deps-only: py39 Requirement satisfied: construct>=2.9.39 (installed: construct 2.10.70) Handling netaddr from tox --print-deps-only: py39 Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse>=1.0.1 from tox --print-deps-only: py39 Requirement satisfied: microversion-parse>=1.0.1 (installed: microversion-parse 2.0.0) Handling zeroconf>=0.24.0 from tox --print-deps-only: py39 Requirement satisfied: zeroconf>=0.24.0 (installed: zeroconf 0.38.7) Handling os-service-types>=1.7.0 from tox --print-deps-only: py39 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: py39 Requirement satisfied: bcrypt>=3.1.3 (installed: bcrypt 3.2.2) Handling websockify>=0.9.0 from tox --print-deps-only: py39 Requirement satisfied: websockify>=0.9.0 (installed: websockify 0.12.0) Handling PyYAML from tox --print-deps-only: py39 Requirement satisfied: PyYAML (installed: PyYAML 5.4.1) Handling coverage>=4.0 from tox --print-deps-only: py39 Requirement satisfied: coverage>=4.0 (installed: coverage 7.3.2) Handling ddt>=1.2.1 from tox --print-deps-only: py39 Requirement satisfied: ddt>=1.2.1 (installed: ddt 1.6.0) Handling fixtures>=3.0.0 from tox --print-deps-only: py39 Requirement satisfied: fixtures>=3.0.0 (installed: fixtures 4.1.0) Handling PyMySQL>=0.8.0 from tox --print-deps-only: py39 Requirement satisfied: PyMySQL>=0.8.0 (installed: PyMySQL 0.10.1) Handling oslo.reports>=1.18.0 from tox --print-deps-only: py39 Requirement satisfied: oslo.reports>=1.18.0 (installed: oslo.reports 3.5.1) Handling oslotest>=3.2.0 from tox --print-deps-only: py39 Requirement satisfied: oslotest>=3.2.0 (installed: oslotest 5.0.1) Handling stestr>=2.0.0 from tox --print-deps-only: py39 Requirement satisfied: stestr>=2.0.0 (installed: stestr 4.1.0) Handling testtools>=2.5.0 from tox --print-deps-only: py39 Requirement satisfied: testtools>=2.5.0 (installed: testtools 2.7.1) Handling WebTest>=2.0.27 from tox --print-deps-only: py39 Requirement satisfied: WebTest>=2.0.27 (installed: WebTest 3.0.0) Handling pysnmp-lextudio>=5.0.0 from tox --print-deps-only: py39 Requirement satisfied: pysnmp-lextudio>=5.0.0 (installed: pysnmp-lextudio 5.0.26) Handling pyasn1>=0.5.1 from tox --print-deps-only: py39 Requirement satisfied: pyasn1>=0.5.1 (installed: pyasn1 0.6.0) Handling pyasn1-modules>=0.3.0 from tox --print-deps-only: py39 Requirement satisfied: pyasn1-modules>=0.3.0 (installed: pyasn1-modules 0.4.0) /usr/lib/python3.9/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( /usr/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( 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.dev120/ironic-29.1.0.dev120.dist-info' adding license file "LICENSE" (matched pattern "LICEN[CS]E*") adding license file "AUTHORS" (matched pattern "AUTHORS*") Handling pbr (>=6.0.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pbr (>=6.0.0) (installed: pbr 6.1.1) Handling SQLAlchemy (>=1.4.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: SQLAlchemy (>=1.4.0) (installed: SQLAlchemy 2.0.38) Handling alembic (>=1.4.2) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: alembic (>=1.4.2) (installed: alembic 1.14.1) Handling automaton (>=1.9.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: automaton (>=1.9.0) (installed: automaton 3.2.0) Handling eventlet (>=0.30.1) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: eventlet (>=0.30.1) (installed: eventlet 0.36.1) Handling WebOb (>=1.7.1) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: WebOb (>=1.7.1) (installed: WebOb 1.8.9) Handling keystoneauth1 (>=4.2.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystoneauth1 (>=4.2.0) (installed: keystoneauth1 5.10.0) Handling stevedore (>=1.29.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: stevedore (>=1.29.0) (installed: stevedore 5.4.1) Handling oslo.concurrency (>=4.2.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.concurrency (>=4.2.0) (installed: oslo.concurrency 7.1.0) Handling oslo.config (>=6.8.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.config (>=6.8.0) (installed: oslo.config 9.7.1) Handling oslo.context (>=2.22.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.context (>=2.22.0) (installed: oslo.context 5.7.1) Handling oslo.db (>=9.1.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.db (>=9.1.0) (installed: oslo.db 17.2.1) Handling oslo.rootwrap (>=5.8.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.rootwrap (>=5.8.0) (installed: oslo.rootwrap 7.5.1) Handling oslo.log (>=4.3.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.log (>=4.3.0) (installed: oslo.log 7.1.0) Handling oslo.middleware (>=3.31.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.middleware (>=3.31.0) (installed: oslo.middleware 6.5.0) Handling oslo.policy (>=4.5.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.policy (>=4.5.0) (installed: oslo.policy 4.5.1) Handling oslo.serialization (>=2.25.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.serialization (>=2.25.0) (installed: oslo.serialization 5.7.0) Handling oslo.service (>=1.24.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.service (>=1.24.0) (installed: oslo.service 4.1.1) Handling oslo.upgradecheck (>=1.3.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.upgradecheck (>=1.3.0) (installed: oslo.upgradecheck 2.5.0) Handling oslo.utils (>=8.0.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.utils (>=8.0.0) (installed: oslo.utils 8.2.0) Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: osprofiler (>=1.5.0) (installed: osprofiler 4.2.0) Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: os-traits (>=0.4.0) (installed: os-traits 3.5.0) Handling pecan (>=1.0.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pecan (>=1.0.0) (installed: pecan 1.5.1) Handling pycdlib (>=1.11.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pycdlib (>=1.11.0) (installed: pycdlib 1.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 2.0.0) Handling jsonpatch (>=1.16) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonpatch (>=1.16) (installed: jsonpatch 1.21) Handling Jinja2 (>=3.0.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: Jinja2 (>=3.0.0) (installed: Jinja2 3.0.1) 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.16.0) Handling psutil (>=3.2.2) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: psutil (>=3.2.2) (installed: psutil 5.8.0) Handling futurist (>=1.2.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: futurist (>=1.2.0) (installed: futurist 3.1.1) Handling tooz (>=2.7.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: tooz (>=2.7.0) (installed: tooz 6.3.0) Handling openstacksdk (>=0.99.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: openstacksdk (>=0.99.0) (installed: openstacksdk 4.5.0) Handling sushy (>=4.8.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: sushy (>=4.8.0) (installed: sushy 5.6.0) Handling construct (>=2.9.39) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: construct (>=2.9.39) (installed: construct 2.10.70) Handling netaddr from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse (>=1.0.1) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: microversion-parse (>=1.0.1) (installed: microversion-parse 2.0.0) Handling zeroconf (>=0.24.0) from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: zeroconf (>=0.24.0) (installed: zeroconf 0.38.7) 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 5.4.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.20250522181724.3387a8f.el9.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev120.dist-info/ removed 'ironic-29.1.0.dev120.dist-info/AUTHORS' removed 'ironic-29.1.0.dev120.dist-info/LICENSE' removed 'ironic-29.1.0.dev120.dist-info/METADATA' removed 'ironic-29.1.0.dev120.dist-info/entry_points.txt' removed 'ironic-29.1.0.dev120.dist-info/pbr.json' removed 'ironic-29.1.0.dev120.dist-info/top_level.txt' removed directory 'ironic-29.1.0.dev120.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.H2WCWd + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/ironic-29.1.0.dev120/pyproject-wheeldir Processing /builddir/build/BUILD/ironic-29.1.0.dev120 Preparing metadata (pyproject.toml): started Running command /usr/bin/python3 /usr/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py prepare_metadata_for_build_wheel /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/tmp2qtlj_yc /usr/lib/python3.9/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( /usr/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( running dist_info creating /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/ironic.egg-info writing /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/ironic.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/ironic.egg-info/dependency_links.txt writing entry points to /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/ironic.egg-info/entry_points.txt writing requirements to /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/ironic.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/ironic.egg-info/top_level.txt writing pbr to /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/ironic.egg-info/pbr.json [pbr] Processing SOURCES.txt writing manifest file '/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/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.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/ironic.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-modern-metadata-w3w2eb4q/ironic-29.1.0.dev120.dist-info' adding license file "LICENSE" (matched pattern "LICEN[CS]E*") adding license file "AUTHORS" (matched pattern "AUTHORS*") Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: ironic Building wheel for ironic (pyproject.toml): started Running command /usr/bin/python3 /usr/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/tmppwc9wpk3 /usr/lib/python3.9/site-packages/setuptools/command/easy_install.py:144: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( 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/xclarity copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity creating build/lib/ironic/drivers creating build/lib/ironic/drivers/modules creating build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/vendor.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/utils.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/raid.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/power.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/management.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/inspect.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/graphical_console.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/firmware_utils.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/firmware.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/boot.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/bios.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/__init__.py -> build/lib/ironic/drivers/modules/redfish creating build/lib/ironic/tests/unit/console creating build/lib/ironic/tests/unit/console/rfb copying ironic/tests/unit/console/rfb/test_authnone.py -> build/lib/ironic/tests/unit/console/rfb copying ironic/tests/unit/console/rfb/test_auth.py -> build/lib/ironic/tests/unit/console/rfb copying ironic/tests/unit/console/rfb/__init__.py -> build/lib/ironic/tests/unit/console/rfb creating build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/inspector creating build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_proxy_middleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_method.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_functions.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api creating build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/vendor_passthru.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/utils.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/raid.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/power.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/management.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/inspect.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/boot.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/bios.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/__init__.py -> build/lib/ironic/drivers/modules/drac creating build/lib/ironic/tests/unit/drivers/modules/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/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/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/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/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/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/console copying ironic/console/websocketproxy.py -> build/lib/ironic/console copying ironic/console/novncproxy_service.py -> build/lib/ironic/console copying ironic/console/__init__.py -> build/lib/ironic/console creating build/lib/ironic/tests/unit/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/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers creating build/lib/ironic/conf copying ironic/conf/vnc.py -> build/lib/ironic/conf copying ironic/conf/types.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf copying ironic/conf/snmp.py -> build/lib/ironic/conf copying ironic/conf/service_catalog.py -> build/lib/ironic/conf copying ironic/conf/sensor_data.py -> build/lib/ironic/conf copying ironic/conf/redfish.py -> build/lib/ironic/conf copying ironic/conf/pxe.py -> build/lib/ironic/conf copying ironic/conf/opts.py -> build/lib/ironic/conf copying ironic/conf/oci.py -> build/lib/ironic/conf copying ironic/conf/nova.py -> build/lib/ironic/conf copying ironic/conf/neutron.py -> build/lib/ironic/conf copying ironic/conf/molds.py -> build/lib/ironic/conf copying ironic/conf/metrics.py -> build/lib/ironic/conf copying ironic/conf/mdns.py -> build/lib/ironic/conf copying ironic/conf/json_rpc.py -> build/lib/ironic/conf copying ironic/conf/irmc.py -> build/lib/ironic/conf copying ironic/conf/ipmi.py -> build/lib/ironic/conf copying ironic/conf/inventory.py -> build/lib/ironic/conf copying ironic/conf/inspector.py -> build/lib/ironic/conf copying ironic/conf/ilo.py -> build/lib/ironic/conf copying ironic/conf/healthcheck.py -> build/lib/ironic/conf copying ironic/conf/glance.py -> build/lib/ironic/conf copying ironic/conf/fake.py -> build/lib/ironic/conf copying ironic/conf/exception.py -> build/lib/ironic/conf copying ironic/conf/drac.py -> build/lib/ironic/conf copying ironic/conf/dnsmasq.py -> build/lib/ironic/conf copying ironic/conf/disk_utils.py -> build/lib/ironic/conf copying ironic/conf/dhcp.py -> build/lib/ironic/conf copying ironic/conf/deploy.py -> build/lib/ironic/conf copying ironic/conf/default.py -> build/lib/ironic/conf copying ironic/conf/database.py -> build/lib/ironic/conf copying ironic/conf/console.py -> build/lib/ironic/conf copying ironic/conf/conductor.py -> build/lib/ironic/conf copying ironic/conf/cinder.py -> build/lib/ironic/conf copying ironic/conf/auth.py -> build/lib/ironic/conf copying ironic/conf/audit.py -> build/lib/ironic/conf copying ironic/conf/api.py -> build/lib/ironic/conf copying ironic/conf/ansible.py -> build/lib/ironic/conf copying ironic/conf/anaconda.py -> build/lib/ironic/conf copying ironic/conf/agent_containers.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf copying ironic/tests/base.py -> build/lib/ironic/tests copying ironic/tests/__init__.py -> build/lib/ironic/tests creating build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/vendor.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/raid.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/power.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/management.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/inspect.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/common.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/boot.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/bios.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/__init__.py -> build/lib/ironic/drivers/modules/irmc creating build/lib/ironic/tests/unit/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/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/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 creating build/lib/ironic/api/controllers 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 copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit creating build/lib/ironic/console/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/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/console/securityproxy copying ironic/console/securityproxy/rfb.py -> build/lib/ironic/console/securityproxy copying ironic/console/securityproxy/base.py -> build/lib/ironic/console/securityproxy copying ironic/console/securityproxy/__init__.py -> build/lib/ironic/console/securityproxy creating build/lib/ironic/dhcp copying ironic/dhcp/none.py -> build/lib/ironic/dhcp copying ironic/dhcp/neutron.py -> build/lib/ironic/dhcp copying ironic/dhcp/dnsmasq.py -> build/lib/ironic/dhcp copying ironic/dhcp/base.py -> build/lib/ironic/dhcp copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp creating build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_types.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_conductor.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/console/__init__.py -> build/lib/ironic/tests/unit/console copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers creating build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_connector.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_trait.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_portgroup.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_port.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_objects.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_notification.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_node_inventory.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_node_history.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_node.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_firmware.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_fields.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_deployment.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_deploy_template.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_conductor.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_allocation.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects copying ironic/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/common copying ironic/common/wsgi_service.py -> build/lib/ironic/common copying ironic/common/vnc.py -> build/lib/ironic/common copying ironic/common/utils.py -> build/lib/ironic/common copying ironic/common/swift.py -> build/lib/ironic/common copying ironic/common/states.py -> build/lib/ironic/common copying ironic/common/service.py -> build/lib/ironic/common copying ironic/common/rpc_service.py -> build/lib/ironic/common copying ironic/common/rpc.py -> build/lib/ironic/common copying ironic/common/release_mappings.py -> build/lib/ironic/common copying ironic/common/raid.py -> build/lib/ironic/common copying ironic/common/qemu_img.py -> build/lib/ironic/common copying ironic/common/pxe_utils.py -> build/lib/ironic/common copying ironic/common/profiler.py -> build/lib/ironic/common copying ironic/common/policy.py -> build/lib/ironic/common copying ironic/common/oci_registry.py -> build/lib/ironic/common copying ironic/common/nova.py -> build/lib/ironic/common copying ironic/common/neutron.py -> build/lib/ironic/common copying ironic/common/network.py -> build/lib/ironic/common copying ironic/common/molds.py -> build/lib/ironic/common copying ironic/common/metrics_utils.py -> build/lib/ironic/common copying ironic/common/metrics_statsd.py -> build/lib/ironic/common copying ironic/common/metrics_collector.py -> build/lib/ironic/common copying ironic/common/metrics.py -> build/lib/ironic/common copying ironic/common/mdns.py -> build/lib/ironic/common copying ironic/common/lessee_sources.py -> build/lib/ironic/common copying ironic/common/kickstart_utils.py -> build/lib/ironic/common copying ironic/common/keystone.py -> build/lib/ironic/common copying ironic/common/indicator_states.py -> build/lib/ironic/common copying ironic/common/images.py -> build/lib/ironic/common copying ironic/common/image_service.py -> build/lib/ironic/common copying ironic/common/image_publisher.py -> build/lib/ironic/common copying ironic/common/i18n.py -> build/lib/ironic/common copying ironic/common/hash_ring.py -> build/lib/ironic/common copying ironic/common/fsm.py -> build/lib/ironic/common copying ironic/common/faults.py -> build/lib/ironic/common copying ironic/common/exception.py -> build/lib/ironic/common copying ironic/common/driver_factory.py -> build/lib/ironic/common copying ironic/common/dhcp_factory.py -> build/lib/ironic/common copying ironic/common/context.py -> build/lib/ironic/common copying ironic/common/console_factory.py -> build/lib/ironic/common copying ironic/common/config.py -> build/lib/ironic/common copying ironic/common/components.py -> build/lib/ironic/common copying ironic/common/cinder.py -> build/lib/ironic/common copying ironic/common/checksum_utils.py -> build/lib/ironic/common copying ironic/common/boot_modes.py -> build/lib/ironic/common copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/auth_basic.py -> build/lib/ironic/common copying ironic/common/async_steps.py -> build/lib/ironic/common copying ironic/common/args.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common creating build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network creating build/lib/ironic/tests/unit/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 copying ironic/version.py -> build/lib/ironic copying ironic/__init__.py -> build/lib/ironic 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/console/container copying ironic/console/container/systemd.py -> build/lib/ironic/console/container copying ironic/console/container/fake.py -> build/lib/ironic/console/container copying ironic/console/container/base.py -> build/lib/ironic/console/container copying ironic/console/container/__init__.py -> build/lib/ironic/console/container creating build/lib/ironic/drivers/modules/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/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/intel_ipmi copying ironic/drivers/modules/intel_ipmi/management.py -> build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/drivers/modules/intel_ipmi creating build/lib/ironic/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/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo creating build/lib/ironic/tests/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional 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/api/validation copying ironic/tests/unit/api/validation/test_validators.py -> build/lib/ironic/tests/unit/api/validation copying ironic/tests/unit/api/validation/__init__.py -> build/lib/ironic/tests/unit/api/validation creating build/lib/ironic/api/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/command copying ironic/command/status.py -> build/lib/ironic/command copying ironic/command/singleprocess.py -> build/lib/ironic/command copying ironic/command/pxe_filter.py -> build/lib/ironic/command copying ironic/command/novncproxy.py -> build/lib/ironic/command copying ironic/command/dbsync.py -> build/lib/ironic/command copying ironic/command/conductor.py -> build/lib/ironic/command copying ironic/command/api.py -> build/lib/ironic/command copying ironic/command/__init__.py -> build/lib/ironic/command creating build/lib/ironic/drivers/modules/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/drivers/modules/inspector copying ironic/drivers/modules/inspector/lldp_tlvs.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/lldp_parsers.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/interface.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/client.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/agent.py -> build/lib/ironic/drivers/modules/inspector copying ironic/drivers/modules/inspector/__init__.py -> build/lib/ironic/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/test_snmp.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ramdisk.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_pxe.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipxe.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_image_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_image_cache.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_graphical_console.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_power.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_base.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/api/wsgi.py -> build/lib/ironic/api copying ironic/api/method.py -> build/lib/ironic/api copying ironic/api/hooks.py -> build/lib/ironic/api copying ironic/api/functions.py -> build/lib/ironic/api copying ironic/api/config.py -> build/lib/ironic/api copying ironic/api/app.py -> build/lib/ironic/api copying ironic/api/__init__.py -> build/lib/ironic/api creating build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_shard.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_runbook.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_root.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_port.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_inspection_rule.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_event.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_driver.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_collection.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1 creating build/lib/ironic/db creating build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy 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/common/json_rpc copying ironic/common/json_rpc/server.py -> build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/client.py -> build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/__init__.py -> build/lib/ironic/common/json_rpc copying ironic/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/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/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/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/wsgi copying ironic/wsgi/__init__.py -> build/lib/ironic/wsgi 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/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/validate_interfaces.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/root_device.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/ramdisk_error.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/raid_device.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/ports.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/physical_network.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/pci_devices.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/parse_lldp.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/memory.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/local_link_connection.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/extra_hardware.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/cpu_capabilities.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/boot_mode.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/base.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/architecture.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/accelerators.py -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/drivers/modules/inspector/hooks/__init__.py -> build/lib/ironic/drivers/modules/inspector/hooks creating build/lib/ironic/tests/unit/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/dhcp copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_dnsmasq.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp creating build/lib/ironic/conductor copying ironic/conductor/verify.py -> build/lib/ironic/conductor copying ironic/conductor/utils.py -> build/lib/ironic/conductor copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor copying ironic/conductor/steps.py -> build/lib/ironic/conductor copying ironic/conductor/servicing.py -> build/lib/ironic/conductor copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor copying ironic/conductor/rpc_service.py -> build/lib/ironic/conductor copying ironic/conductor/periodics.py -> build/lib/ironic/conductor copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor copying ironic/conductor/manager.py -> build/lib/ironic/conductor copying ironic/conductor/inspection.py -> build/lib/ironic/conductor copying ironic/conductor/deployments.py -> build/lib/ironic/conductor copying ironic/conductor/cleaning.py -> build/lib/ironic/conductor copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor copying ironic/conductor/allocations.py -> build/lib/ironic/conductor copying ironic/conductor/__init__.py -> build/lib/ironic/conductor creating build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_verify.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_task_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_steps.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_servicing.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_rpcapi.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_rpc_service.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_periodics.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_notification_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_inspection.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_deployments.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_cleaning.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_base_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_allocations.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor creating build/lib/ironic/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/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy creating build/lib/ironic/tests/unit/drivers/modules/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 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.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.api.schemas.v1' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.api.schemas.v1' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.api.schemas.v1' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.api.schemas.v1' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.db.sqlalchemy.alembic' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.db.sqlalchemy.alembic' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.db.sqlalchemy.alembic' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.db.sqlalchemy.alembic' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.db.sqlalchemy.alembic.versions' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.db.sqlalchemy.alembic.versions' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.db.sqlalchemy.alembic.versions' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.db.sqlalchemy.alembic.versions' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.callback_plugins' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.callback_plugins' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.callback_plugins' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.callback_plugins' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.library' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.library' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.library' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.library' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.tests.json_samples' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.json_samples' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.tests.json_samples' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.tests.json_samples' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.tests.unit.common.drive_samples' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.unit.common.drive_samples' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.tests.unit.common.drive_samples' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.tests.unit.common.drive_samples' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.tests.unit.common.json_samples' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.unit.common.json_samples' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.tests.unit.common.json_samples' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.tests.unit.common.json_samples' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3.9/site-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.tests.unit.drivers.modules.network.json_samples' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.unit.drivers.modules.network.json_samples' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.tests.unit.drivers.modules.network.json_samples' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.tests.unit.drivers.modules.network.json_samples' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) 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/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 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/modules/irmc/fake_sensors_data_ng.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/boot-fallback.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/json_samples copying ironic/tests/json_samples/network_data.json -> build/lib/ironic/tests/json_samples copying ironic/tests/json_samples/systems_collection_dual.json -> build/lib/ironic/tests/json_samples copying ironic/tests/json_samples/systems_collection_single.json -> build/lib/ironic/tests/json_samples copying ironic/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1 copying ironic/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/initial_grub_cfg.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ks.cfg.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common 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 copying ironic/console/container/ironic-console.container.template -> build/lib/ironic/console/container 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/db/sqlalchemy/alembic.ini -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/README -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/env.py -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/script.py.mako -> build/lib/ironic/db/sqlalchemy/alembic creating build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers copying ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/lib/ironic/drivers/modules/inspector/hooks 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.1s) 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/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/wsgi copying build/lib/ironic/wsgi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/wsgi 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/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/db copying build/lib/ironic/db/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db copying build/lib/ironic/db/api.py -> build/bdist.linux-x86_64/wheel/ironic/db copying build/lib/ironic/db/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/README -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic.ini -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/api.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/models.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy creating build/bdist.linux-x86_64/wheel/ironic/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 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/common copying build/lib/ironic/common/isolinux_config.template -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/grub_conf.template -> build/bdist.linux-x86_64/wheel/ironic/common creating build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/service_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service creating build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/client.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/server.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc 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 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/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/objects copying build/lib/ironic/objects/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/allocation.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/base.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/bios.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/chassis.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/deployment.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/fields.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/firmware.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/indirection.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/node.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/node_history.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/node_inventory.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/notification.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/port.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/runbook.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/trait.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/objects copying build/lib/ironic/objects/volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/objects creating build/bdist.linux-x86_64/wheel/ironic/api creating build/bdist.linux-x86_64/wheel/ironic/api/schemas creating build/bdist.linux-x86_64/wheel/ironic/api/schemas/v1 copying build/lib/ironic/api/schemas/v1/shard.py -> build/bdist.linux-x86_64/wheel/ironic/api/schemas/v1 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/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 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 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 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/conf copying build/lib/ironic/conf/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/agent.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/agent_containers.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/anaconda.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/ansible.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/api.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/audit.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/auth.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/console.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/database.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/default.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/deploy.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/dhcp.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/disk_utils.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/drac.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/exception.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/fake.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/glance.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/healthcheck.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/ilo.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/inspector.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/inventory.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/irmc.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/json_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/mdns.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/metrics.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/molds.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/nova.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/oci.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/opts.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/pxe.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/redfish.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/sensor_data.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/service_catalog.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/snmp.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/swift.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/types.py -> build/bdist.linux-x86_64/wheel/ironic/conf copying build/lib/ironic/conf/vnc.py -> build/bdist.linux-x86_64/wheel/ironic/conf creating build/bdist.linux-x86_64/wheel/ironic/console creating build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/ironic-console.container.template -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/base.py -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/fake.py -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/systemd.py -> build/bdist.linux-x86_64/wheel/ironic/console/container creating build/bdist.linux-x86_64/wheel/ironic/console/securityproxy copying build/lib/ironic/console/securityproxy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/securityproxy copying build/lib/ironic/console/securityproxy/base.py -> build/bdist.linux-x86_64/wheel/ironic/console/securityproxy copying build/lib/ironic/console/securityproxy/rfb.py -> build/bdist.linux-x86_64/wheel/ironic/console/securityproxy creating build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/rfb/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/rfb/auth.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/rfb/authnone.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/rfb/auths.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb copying build/lib/ironic/console/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console copying build/lib/ironic/console/novncproxy_service.py -> build/bdist.linux-x86_64/wheel/ironic/console copying build/lib/ironic/console/websocketproxy.py -> build/bdist.linux-x86_64/wheel/ironic/console creating build/bdist.linux-x86_64/wheel/ironic/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/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/network copying build/lib/ironic/drivers/modules/network/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/flat.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network copying build/lib/ironic/drivers/modules/network/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/network creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/intel_ipmi creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/external.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage copying build/lib/ironic/drivers/modules/storage/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/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 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/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/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/drac copying build/lib/ironic/drivers/modules/drac/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/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/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/conductor copying build/lib/ironic/tests/unit/conductor/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_cleaning.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_deployments.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_inspection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_periodics.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_rpc_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_servicing.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_steps.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_verify.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/dhcp creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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/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/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/conf copying build/lib/ironic/tests/unit/conf/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_auth.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf copying build/lib/ironic/tests/unit/conf/test_types.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf 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/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/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/api copying build/lib/ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_rbac_legacy.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_acl_basic.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation copying build/lib/ironic/tests/unit/api/validation/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation copying build/lib/ironic/tests/unit/api/validation/test_validators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_collection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_driver.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_event.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_node.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_port.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_root.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_runbook.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_shard.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_versions.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1 copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers 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/console creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy copying build/lib/ironic/tests/unit/console/securityproxy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy copying build/lib/ironic/tests/unit/console/securityproxy/test_rfb.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy copying build/lib/ironic/tests/unit/console/securityproxy/test_websocketproxy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy copying build/lib/ironic/tests/unit/console/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/container copying build/lib/ironic/tests/unit/console/container/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/container copying build/lib/ironic/tests/unit/console/container/test_console_container.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/container creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb copying build/lib/ironic/tests/unit/console/rfb/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb copying build/lib/ironic/tests/unit/console/rfb/test_auth.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb copying build/lib/ironic/tests/unit/console/rfb/test_authnone.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/ipxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/boot.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/boot-fallback.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_drac.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_fake_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_generic.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ilo.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_irmc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_redfish.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_snmp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage copying build/lib/ironic/tests/unit/drivers/modules/storage/test_external.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/storage creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/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/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 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/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc copying build/lib/ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ibmc 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/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/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/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/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/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/xclarity running install_data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/etc creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/etc/ironic copying etc/ironic/rootwrap.conf -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/etc/ironic creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-utils.filters -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/etc/ironic/rootwrap.d/ creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/share creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/share/ironic creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/share/ironic/vnc-container copying tools/vnc-container/README.rst -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/ copying tools/vnc-container/Containerfile -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/ creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.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.dev120.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.dev120.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.dev120.data/data/share/ironic/vnc-container/bin creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/drivers creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.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.dev120.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.dev120.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.dev120-py3.9.egg-info running install_scripts Installing ironic-api-wsgi script to build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.data/scripts adding license file "LICENSE" (matched pattern "LICEN[CS]E*") adding license file "AUTHORS" (matched pattern "AUTHORS*") creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev120.dist-info/WHEEL creating '/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir/pip-wheel-lb6hzkp8/tmph249g3ib/ironic-29.1.0.dev120-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'ironic/__init__.py' adding 'ironic/version.py' adding 'ironic/api/__init__.py' adding 'ironic/api/app.py' adding 'ironic/api/config.py' adding 'ironic/api/functions.py' adding 'ironic/api/hooks.py' adding 'ironic/api/method.py' adding 'ironic/api/wsgi.py' adding 'ironic/api/controllers/__init__.py' adding 'ironic/api/controllers/base.py' adding 'ironic/api/controllers/link.py' adding 'ironic/api/controllers/root.py' adding 'ironic/api/controllers/version.py' adding 'ironic/api/controllers/v1/__init__.py' adding 'ironic/api/controllers/v1/allocation.py' adding 'ironic/api/controllers/v1/bios.py' adding 'ironic/api/controllers/v1/chassis.py' adding 'ironic/api/controllers/v1/collection.py' adding 'ironic/api/controllers/v1/conductor.py' adding 'ironic/api/controllers/v1/deploy_template.py' adding 'ironic/api/controllers/v1/driver.py' adding 'ironic/api/controllers/v1/event.py' adding 'ironic/api/controllers/v1/firmware.py' adding 'ironic/api/controllers/v1/inspection_rule.py' adding 'ironic/api/controllers/v1/network-data-schema.json' adding 'ironic/api/controllers/v1/node.py' adding 'ironic/api/controllers/v1/notification_utils.py' adding 'ironic/api/controllers/v1/port.py' adding 'ironic/api/controllers/v1/portgroup.py' adding 'ironic/api/controllers/v1/ramdisk.py' adding 'ironic/api/controllers/v1/runbook.py' adding 'ironic/api/controllers/v1/shard.py' adding 'ironic/api/controllers/v1/utils.py' adding 'ironic/api/controllers/v1/versions.py' adding 'ironic/api/controllers/v1/volume.py' adding 'ironic/api/controllers/v1/volume_connector.py' adding 'ironic/api/controllers/v1/volume_target.py' adding 'ironic/api/middleware/__init__.py' adding 'ironic/api/middleware/auth_public_routes.py' adding 'ironic/api/middleware/json_ext.py' adding 'ironic/api/middleware/parsable_error.py' adding 'ironic/api/schemas/v1/shard.py' adding 'ironic/api/validation/__init__.py' adding 'ironic/api/validation/validators.py' adding 'ironic/command/__init__.py' adding 'ironic/command/api.py' adding 'ironic/command/conductor.py' adding 'ironic/command/dbsync.py' adding 'ironic/command/novncproxy.py' adding 'ironic/command/pxe_filter.py' adding 'ironic/command/singleprocess.py' adding 'ironic/command/status.py' adding 'ironic/common/__init__.py' adding 'ironic/common/args.py' adding 'ironic/common/async_steps.py' adding 'ironic/common/auth_basic.py' adding 'ironic/common/boot_devices.py' adding 'ironic/common/boot_modes.py' adding 'ironic/common/checksum_utils.py' adding 'ironic/common/cinder.py' adding 'ironic/common/components.py' adding 'ironic/common/config.py' adding 'ironic/common/console_factory.py' adding 'ironic/common/context.py' adding 'ironic/common/dhcp_factory.py' adding 'ironic/common/driver_factory.py' adding 'ironic/common/exception.py' adding 'ironic/common/faults.py' adding 'ironic/common/fsm.py' adding 'ironic/common/grub_conf.template' adding 'ironic/common/hash_ring.py' adding 'ironic/common/i18n.py' adding 'ironic/common/image_publisher.py' adding 'ironic/common/image_service.py' adding 'ironic/common/images.py' adding 'ironic/common/indicator_states.py' adding 'ironic/common/isolinux_config.template' adding 'ironic/common/keystone.py' adding 'ironic/common/kickstart_utils.py' adding 'ironic/common/lessee_sources.py' adding 'ironic/common/mdns.py' adding 'ironic/common/metrics.py' adding 'ironic/common/metrics_collector.py' adding 'ironic/common/metrics_statsd.py' adding 'ironic/common/metrics_utils.py' adding 'ironic/common/molds.py' adding 'ironic/common/network.py' adding 'ironic/common/neutron.py' adding 'ironic/common/nova.py' adding 'ironic/common/oci_registry.py' adding 'ironic/common/policy.py' adding 'ironic/common/profiler.py' adding 'ironic/common/pxe_utils.py' adding 'ironic/common/qemu_img.py' adding 'ironic/common/raid.py' adding 'ironic/common/release_mappings.py' adding 'ironic/common/rpc.py' adding 'ironic/common/rpc_service.py' adding 'ironic/common/service.py' adding 'ironic/common/states.py' adding 'ironic/common/swift.py' adding 'ironic/common/utils.py' adding 'ironic/common/vnc.py' adding 'ironic/common/wsgi_service.py' adding 'ironic/common/glance_service/__init__.py' adding 'ironic/common/glance_service/image_service.py' adding 'ironic/common/glance_service/service_utils.py' adding 'ironic/common/inspection_rules/__init__.py' adding 'ironic/common/inspection_rules/actions.py' adding 'ironic/common/inspection_rules/base.py' adding 'ironic/common/inspection_rules/engine.py' adding 'ironic/common/inspection_rules/operators.py' adding 'ironic/common/inspection_rules/utils.py' adding 'ironic/common/inspection_rules/validation.py' adding 'ironic/common/json_rpc/__init__.py' adding 'ironic/common/json_rpc/client.py' adding 'ironic/common/json_rpc/server.py' adding 'ironic/conductor/__init__.py' adding 'ironic/conductor/allocations.py' adding 'ironic/conductor/base_manager.py' adding 'ironic/conductor/cleaning.py' adding 'ironic/conductor/deployments.py' adding 'ironic/conductor/inspection.py' adding 'ironic/conductor/manager.py' adding 'ironic/conductor/notification_utils.py' adding 'ironic/conductor/periodics.py' adding 'ironic/conductor/rpc_service.py' adding 'ironic/conductor/rpcapi.py' adding 'ironic/conductor/servicing.py' adding 'ironic/conductor/steps.py' adding 'ironic/conductor/task_manager.py' adding 'ironic/conductor/utils.py' adding 'ironic/conductor/verify.py' adding 'ironic/conf/__init__.py' adding 'ironic/conf/agent.py' adding 'ironic/conf/agent_containers.py' adding 'ironic/conf/anaconda.py' adding 'ironic/conf/ansible.py' adding 'ironic/conf/api.py' adding 'ironic/conf/audit.py' adding 'ironic/conf/auth.py' adding 'ironic/conf/cinder.py' adding 'ironic/conf/conductor.py' adding 'ironic/conf/console.py' adding 'ironic/conf/database.py' adding 'ironic/conf/default.py' adding 'ironic/conf/deploy.py' adding 'ironic/conf/dhcp.py' adding 'ironic/conf/disk_utils.py' adding 'ironic/conf/dnsmasq.py' adding 'ironic/conf/drac.py' adding 'ironic/conf/exception.py' adding 'ironic/conf/fake.py' adding 'ironic/conf/glance.py' adding 'ironic/conf/healthcheck.py' adding 'ironic/conf/ilo.py' adding 'ironic/conf/inspector.py' adding 'ironic/conf/inventory.py' adding 'ironic/conf/ipmi.py' adding 'ironic/conf/irmc.py' adding 'ironic/conf/json_rpc.py' adding 'ironic/conf/mdns.py' adding 'ironic/conf/metrics.py' adding 'ironic/conf/molds.py' adding 'ironic/conf/neutron.py' adding 'ironic/conf/nova.py' adding 'ironic/conf/oci.py' adding 'ironic/conf/opts.py' adding 'ironic/conf/pxe.py' adding 'ironic/conf/redfish.py' adding 'ironic/conf/sensor_data.py' adding 'ironic/conf/service_catalog.py' adding 'ironic/conf/snmp.py' adding 'ironic/conf/swift.py' adding 'ironic/conf/types.py' adding 'ironic/conf/vnc.py' adding 'ironic/console/__init__.py' adding 'ironic/console/novncproxy_service.py' adding 'ironic/console/websocketproxy.py' adding 'ironic/console/container/__init__.py' adding 'ironic/console/container/base.py' adding 'ironic/console/container/fake.py' adding 'ironic/console/container/ironic-console.container.template' adding 'ironic/console/container/systemd.py' adding 'ironic/console/rfb/__init__.py' adding 'ironic/console/rfb/auth.py' adding 'ironic/console/rfb/authnone.py' adding 'ironic/console/rfb/auths.py' adding 'ironic/console/securityproxy/__init__.py' adding 'ironic/console/securityproxy/base.py' adding 'ironic/console/securityproxy/rfb.py' adding 'ironic/db/__init__.py' adding 'ironic/db/api.py' adding 'ironic/db/migration.py' adding 'ironic/db/sqlalchemy/__init__.py' adding 'ironic/db/sqlalchemy/alembic.ini' adding 'ironic/db/sqlalchemy/api.py' adding 'ironic/db/sqlalchemy/migration.py' adding 'ironic/db/sqlalchemy/models.py' adding 'ironic/db/sqlalchemy/alembic/README' adding 'ironic/db/sqlalchemy/alembic/env.py' adding 'ironic/db/sqlalchemy/alembic/script.py.mako' adding 'ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py' adding 'ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py' adding 'ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py' adding 'ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py' adding 'ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py' adding 'ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py' adding 'ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py' adding 'ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py' adding 'ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py' adding 'ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py' adding 'ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py' adding 'ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py' adding 'ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py' adding 'ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py' adding 'ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py' adding 'ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py' adding 'ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py' adding 'ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py' adding 'ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py' adding 'ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py' adding 'ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py' adding 'ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py' adding 'ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py' adding 'ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py' adding 'ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py' adding 'ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py' adding 'ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py' adding 'ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py' adding 'ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py' adding 'ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py' adding 'ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py' adding 'ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py' adding 'ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py' adding 'ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py' adding 'ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py' adding 'ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py' adding 'ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py' adding 'ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py' adding 'ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py' adding 'ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py' adding 'ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py' adding 'ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py' adding 'ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py' adding 'ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py' adding 'ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py' adding 'ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py' adding 'ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py' adding 'ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py' adding 'ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py' adding 'ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py' adding 'ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py' adding 'ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py' adding 'ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py' adding 'ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py' adding 'ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py' adding 'ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py' adding 'ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py' adding 'ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py' adding 'ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py' adding 'ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py' adding 'ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py' adding 'ironic/dhcp/__init__.py' adding 'ironic/dhcp/base.py' adding 'ironic/dhcp/dnsmasq.py' adding 'ironic/dhcp/neutron.py' adding 'ironic/dhcp/none.py' adding 'ironic/drivers/__init__.py' adding 'ironic/drivers/base.py' adding 'ironic/drivers/drac.py' adding 'ironic/drivers/fake_hardware.py' adding 'ironic/drivers/generic.py' adding 'ironic/drivers/hardware_type.py' adding 'ironic/drivers/ilo.py' adding 'ironic/drivers/intel_ipmi.py' adding 'ironic/drivers/ipmi.py' adding 'ironic/drivers/irmc.py' adding 'ironic/drivers/raid_config_schema.json' adding 'ironic/drivers/redfish.py' adding 'ironic/drivers/snmp.py' adding 'ironic/drivers/utils.py' adding 'ironic/drivers/modules/__init__.py' adding 'ironic/drivers/modules/agent.py' adding 'ironic/drivers/modules/agent_base.py' adding 'ironic/drivers/modules/agent_client.py' adding 'ironic/drivers/modules/agent_power.py' adding 'ironic/drivers/modules/boot.ipxe' adding 'ironic/drivers/modules/boot_mode_utils.py' adding 'ironic/drivers/modules/console_utils.py' adding 'ironic/drivers/modules/deploy_utils.py' adding 'ironic/drivers/modules/fake.py' adding 'ironic/drivers/modules/graphical_console.py' adding 'ironic/drivers/modules/image_cache.py' adding 'ironic/drivers/modules/image_utils.py' adding 'ironic/drivers/modules/initial_grub_cfg.template' adding 'ironic/drivers/modules/inspect_utils.py' adding 'ironic/drivers/modules/ipmitool.py' adding 'ironic/drivers/modules/ipxe.py' adding 'ironic/drivers/modules/ipxe_config.template' adding 'ironic/drivers/modules/ks.cfg.template' adding 'ironic/drivers/modules/noop.py' adding 'ironic/drivers/modules/noop_mgmt.py' adding 'ironic/drivers/modules/pxe.py' adding 'ironic/drivers/modules/pxe_base.py' adding 'ironic/drivers/modules/pxe_config.template' adding 'ironic/drivers/modules/pxe_grub_config.template' adding 'ironic/drivers/modules/ramdisk.py' adding 'ironic/drivers/modules/snmp.py' adding 'ironic/drivers/modules/ansible/__init__.py' adding 'ironic/drivers/modules/ansible/deploy.py' adding 'ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml' adding 'ironic/drivers/modules/ansible/playbooks/ansible.cfg' adding 'ironic/drivers/modules/ansible/playbooks/clean.yaml' adding 'ironic/drivers/modules/ansible/playbooks/clean_steps.yaml' adding 'ironic/drivers/modules/ansible/playbooks/deploy.yaml' adding 'ironic/drivers/modules/ansible/playbooks/inventory' adding 'ironic/drivers/modules/ansible/playbooks/shutdown.yaml' adding 'ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini' adding 'ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py' adding 'ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py' adding 'ironic/drivers/modules/ansible/playbooks/library/root_hints.py' adding 'ironic/drivers/modules/ansible/playbooks/library/stream_url.py' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml' adding 'ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml' adding 'ironic/drivers/modules/drac/__init__.py' adding 'ironic/drivers/modules/drac/bios.py' adding 'ironic/drivers/modules/drac/boot.py' adding 'ironic/drivers/modules/drac/inspect.py' adding 'ironic/drivers/modules/drac/management.py' adding 'ironic/drivers/modules/drac/power.py' adding 'ironic/drivers/modules/drac/raid.py' adding 'ironic/drivers/modules/drac/utils.py' adding 'ironic/drivers/modules/drac/vendor_passthru.py' adding 'ironic/drivers/modules/ilo/__init__.py' adding 'ironic/drivers/modules/ilo/bios.py' adding 'ironic/drivers/modules/ilo/boot.py' adding 'ironic/drivers/modules/ilo/common.py' adding 'ironic/drivers/modules/ilo/console.py' adding 'ironic/drivers/modules/ilo/firmware_processor.py' adding 'ironic/drivers/modules/ilo/inspect.py' adding 'ironic/drivers/modules/ilo/management.py' adding 'ironic/drivers/modules/ilo/power.py' adding 'ironic/drivers/modules/ilo/raid.py' adding 'ironic/drivers/modules/ilo/vendor.py' adding 'ironic/drivers/modules/inspector/__init__.py' adding 'ironic/drivers/modules/inspector/agent.py' adding 'ironic/drivers/modules/inspector/client.py' adding 'ironic/drivers/modules/inspector/interface.py' adding 'ironic/drivers/modules/inspector/lldp_parsers.py' adding 'ironic/drivers/modules/inspector/lldp_tlvs.py' adding 'ironic/drivers/modules/inspector/hooks/__init__.py' adding 'ironic/drivers/modules/inspector/hooks/accelerators.py' adding 'ironic/drivers/modules/inspector/hooks/architecture.py' adding 'ironic/drivers/modules/inspector/hooks/base.py' adding 'ironic/drivers/modules/inspector/hooks/boot_mode.py' adding 'ironic/drivers/modules/inspector/hooks/cpu_capabilities.py' adding 'ironic/drivers/modules/inspector/hooks/extra_hardware.py' adding 'ironic/drivers/modules/inspector/hooks/known_accelerators.yaml' adding 'ironic/drivers/modules/inspector/hooks/local_link_connection.py' adding 'ironic/drivers/modules/inspector/hooks/memory.py' adding 'ironic/drivers/modules/inspector/hooks/parse_lldp.py' adding 'ironic/drivers/modules/inspector/hooks/pci_devices.py' adding 'ironic/drivers/modules/inspector/hooks/physical_network.py' adding 'ironic/drivers/modules/inspector/hooks/ports.py' adding 'ironic/drivers/modules/inspector/hooks/raid_device.py' adding 'ironic/drivers/modules/inspector/hooks/ramdisk_error.py' adding 'ironic/drivers/modules/inspector/hooks/root_device.py' adding 'ironic/drivers/modules/inspector/hooks/validate_interfaces.py' adding 'ironic/drivers/modules/intel_ipmi/__init__.py' adding 'ironic/drivers/modules/intel_ipmi/management.py' adding 'ironic/drivers/modules/irmc/__init__.py' adding 'ironic/drivers/modules/irmc/bios.py' adding 'ironic/drivers/modules/irmc/boot.py' adding 'ironic/drivers/modules/irmc/common.py' adding 'ironic/drivers/modules/irmc/inspect.py' adding 'ironic/drivers/modules/irmc/management.py' adding 'ironic/drivers/modules/irmc/power.py' adding 'ironic/drivers/modules/irmc/raid.py' adding 'ironic/drivers/modules/irmc/vendor.py' adding 'ironic/drivers/modules/network/__init__.py' adding 'ironic/drivers/modules/network/common.py' adding 'ironic/drivers/modules/network/flat.py' adding 'ironic/drivers/modules/network/neutron.py' adding 'ironic/drivers/modules/network/noop.py' adding 'ironic/drivers/modules/redfish/__init__.py' adding 'ironic/drivers/modules/redfish/bios.py' adding 'ironic/drivers/modules/redfish/boot.py' adding 'ironic/drivers/modules/redfish/firmware.py' adding 'ironic/drivers/modules/redfish/firmware_utils.py' adding 'ironic/drivers/modules/redfish/graphical_console.py' adding 'ironic/drivers/modules/redfish/inspect.py' adding 'ironic/drivers/modules/redfish/management.py' adding 'ironic/drivers/modules/redfish/power.py' adding 'ironic/drivers/modules/redfish/raid.py' adding 'ironic/drivers/modules/redfish/utils.py' adding 'ironic/drivers/modules/redfish/vendor.py' adding 'ironic/drivers/modules/storage/__init__.py' adding 'ironic/drivers/modules/storage/cinder.py' adding 'ironic/drivers/modules/storage/external.py' adding 'ironic/drivers/modules/storage/noop.py' adding 'ironic/hacking/__init__.py' adding 'ironic/hacking/checks.py' adding 'ironic/objects/__init__.py' adding 'ironic/objects/allocation.py' adding 'ironic/objects/base.py' adding 'ironic/objects/bios.py' adding 'ironic/objects/chassis.py' adding 'ironic/objects/conductor.py' adding 'ironic/objects/deploy_template.py' adding 'ironic/objects/deployment.py' adding 'ironic/objects/fields.py' adding 'ironic/objects/firmware.py' adding 'ironic/objects/indirection.py' adding 'ironic/objects/inspection_rule.py' adding 'ironic/objects/node.py' adding 'ironic/objects/node_history.py' adding 'ironic/objects/node_inventory.py' adding 'ironic/objects/notification.py' adding 'ironic/objects/port.py' adding 'ironic/objects/portgroup.py' adding 'ironic/objects/runbook.py' adding 'ironic/objects/trait.py' adding 'ironic/objects/volume_connector.py' adding 'ironic/objects/volume_target.py' adding 'ironic/pxe_filter/__init__.py' adding 'ironic/pxe_filter/dnsmasq.py' adding 'ironic/pxe_filter/service.py' adding 'ironic/tests/__init__.py' adding 'ironic/tests/base.py' adding 'ironic/tests/functional/__init__.py' adding 'ironic/tests/json_samples/network_data.json' adding 'ironic/tests/json_samples/systems_collection_dual.json' adding 'ironic/tests/json_samples/systems_collection_single.json' adding 'ironic/tests/unit/__init__.py' adding 'ironic/tests/unit/policy_fixture.py' adding 'ironic/tests/unit/raid_constants.py' adding 'ironic/tests/unit/stubs.py' adding 'ironic/tests/unit/test_base.py' adding 'ironic/tests/unit/api/__init__.py' adding 'ironic/tests/unit/api/base.py' adding 'ironic/tests/unit/api/test_acl.py' adding 'ironic/tests/unit/api/test_acl_basic.yaml' adding 'ironic/tests/unit/api/test_audit.py' adding 'ironic/tests/unit/api/test_functions.py' adding 'ironic/tests/unit/api/test_healthcheck.py' adding 'ironic/tests/unit/api/test_hooks.py' adding 'ironic/tests/unit/api/test_method.py' adding 'ironic/tests/unit/api/test_middleware.py' adding 'ironic/tests/unit/api/test_ospmiddleware.py' adding 'ironic/tests/unit/api/test_proxy_middleware.py' adding 'ironic/tests/unit/api/test_rbac_legacy.yaml' adding 'ironic/tests/unit/api/test_rbac_project_scoped.yaml' adding 'ironic/tests/unit/api/test_rbac_system_scoped.yaml' adding 'ironic/tests/unit/api/test_root.py' adding 'ironic/tests/unit/api/utils.py' adding 'ironic/tests/unit/api/controllers/__init__.py' adding 'ironic/tests/unit/api/controllers/test_base.py' adding 'ironic/tests/unit/api/controllers/v1/__init__.py' adding 'ironic/tests/unit/api/controllers/v1/test_allocation.py' adding 'ironic/tests/unit/api/controllers/v1/test_chassis.py' adding 'ironic/tests/unit/api/controllers/v1/test_collection.py' adding 'ironic/tests/unit/api/controllers/v1/test_conductor.py' adding 'ironic/tests/unit/api/controllers/v1/test_deploy_template.py' adding 'ironic/tests/unit/api/controllers/v1/test_driver.py' adding 'ironic/tests/unit/api/controllers/v1/test_event.py' adding 'ironic/tests/unit/api/controllers/v1/test_inspection_rule.py' adding 'ironic/tests/unit/api/controllers/v1/test_node.py' adding 'ironic/tests/unit/api/controllers/v1/test_notification_utils.py' adding 'ironic/tests/unit/api/controllers/v1/test_port.py' adding 'ironic/tests/unit/api/controllers/v1/test_portgroup.py' adding 'ironic/tests/unit/api/controllers/v1/test_ramdisk.py' adding 'ironic/tests/unit/api/controllers/v1/test_root.py' adding 'ironic/tests/unit/api/controllers/v1/test_runbook.py' adding 'ironic/tests/unit/api/controllers/v1/test_shard.py' adding 'ironic/tests/unit/api/controllers/v1/test_utils.py' adding 'ironic/tests/unit/api/controllers/v1/test_versions.py' adding 'ironic/tests/unit/api/controllers/v1/test_volume.py' adding 'ironic/tests/unit/api/controllers/v1/test_volume_connector.py' adding 'ironic/tests/unit/api/controllers/v1/test_volume_target.py' adding 'ironic/tests/unit/api/validation/__init__.py' adding 'ironic/tests/unit/api/validation/test_validators.py' adding 'ironic/tests/unit/command/__init__.py' adding 'ironic/tests/unit/command/test_conductor.py' adding 'ironic/tests/unit/command/test_dbsync.py' adding 'ironic/tests/unit/command/test_status.py' adding 'ironic/tests/unit/common/__init__.py' adding 'ironic/tests/unit/common/test_args.py' adding 'ironic/tests/unit/common/test_checksum_utils.py' adding 'ironic/tests/unit/common/test_cinder.py' adding 'ironic/tests/unit/common/test_context.py' adding 'ironic/tests/unit/common/test_driver_factory.py' adding 'ironic/tests/unit/common/test_exception.py' adding 'ironic/tests/unit/common/test_fsm.py' adding 'ironic/tests/unit/common/test_glance_service.py' adding 'ironic/tests/unit/common/test_hash_ring.py' adding 'ironic/tests/unit/common/test_image_publisher.py' adding 'ironic/tests/unit/common/test_image_service.py' adding 'ironic/tests/unit/common/test_images.py' adding 'ironic/tests/unit/common/test_inspection_rule.py' adding 'ironic/tests/unit/common/test_json_rpc.py' adding 'ironic/tests/unit/common/test_keystone.py' adding 'ironic/tests/unit/common/test_kickstart_utils.py' adding 'ironic/tests/unit/common/test_mdns.py' adding 'ironic/tests/unit/common/test_molds.py' adding 'ironic/tests/unit/common/test_network.py' adding 'ironic/tests/unit/common/test_neutron.py' adding 'ironic/tests/unit/common/test_nova.py' adding 'ironic/tests/unit/common/test_oci_registry.py' adding 'ironic/tests/unit/common/test_policy.py' adding 'ironic/tests/unit/common/test_pxe_utils.py' adding 'ironic/tests/unit/common/test_qemu_img.py' adding 'ironic/tests/unit/common/test_raid.py' adding 'ironic/tests/unit/common/test_release_mappings.py' adding 'ironic/tests/unit/common/test_rpc.py' adding 'ironic/tests/unit/common/test_states.py' adding 'ironic/tests/unit/common/test_swift.py' adding 'ironic/tests/unit/common/test_utils.py' adding 'ironic/tests/unit/common/test_vnc.py' adding 'ironic/tests/unit/common/test_wsgi_service.py' adding 'ironic/tests/unit/common/drive_samples/config_drive' adding 'ironic/tests/unit/common/json_samples/neutron_network_show.json' adding 'ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json' adding 'ironic/tests/unit/common/json_samples/neutron_port_show.json' adding 'ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json' adding 'ironic/tests/unit/common/json_samples/neutron_subnet_show.json' adding 'ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json' adding 'ironic/tests/unit/conductor/__init__.py' adding 'ironic/tests/unit/conductor/mgr_utils.py' adding 'ironic/tests/unit/conductor/test_allocations.py' adding 'ironic/tests/unit/conductor/test_base_manager.py' adding 'ironic/tests/unit/conductor/test_cleaning.py' adding 'ironic/tests/unit/conductor/test_deployments.py' adding 'ironic/tests/unit/conductor/test_inspection.py' adding 'ironic/tests/unit/conductor/test_manager.py' adding 'ironic/tests/unit/conductor/test_notification_utils.py' adding 'ironic/tests/unit/conductor/test_periodics.py' adding 'ironic/tests/unit/conductor/test_rpc_service.py' adding 'ironic/tests/unit/conductor/test_rpcapi.py' adding 'ironic/tests/unit/conductor/test_servicing.py' adding 'ironic/tests/unit/conductor/test_steps.py' adding 'ironic/tests/unit/conductor/test_task_manager.py' adding 'ironic/tests/unit/conductor/test_utils.py' adding 'ironic/tests/unit/conductor/test_verify.py' adding 'ironic/tests/unit/conf/__init__.py' adding 'ironic/tests/unit/conf/test_auth.py' adding 'ironic/tests/unit/conf/test_conductor.py' adding 'ironic/tests/unit/conf/test_types.py' adding 'ironic/tests/unit/console/__init__.py' adding 'ironic/tests/unit/console/container/__init__.py' adding 'ironic/tests/unit/console/container/test_console_container.py' adding 'ironic/tests/unit/console/rfb/__init__.py' adding 'ironic/tests/unit/console/rfb/test_auth.py' adding 'ironic/tests/unit/console/rfb/test_authnone.py' adding 'ironic/tests/unit/console/securityproxy/__init__.py' adding 'ironic/tests/unit/console/securityproxy/test_rfb.py' adding 'ironic/tests/unit/console/securityproxy/test_websocketproxy.py' adding 'ironic/tests/unit/db/__init__.py' adding 'ironic/tests/unit/db/base.py' adding 'ironic/tests/unit/db/test_allocations.py' adding 'ironic/tests/unit/db/test_api.py' adding 'ironic/tests/unit/db/test_bios_settings.py' adding 'ironic/tests/unit/db/test_chassis.py' adding 'ironic/tests/unit/db/test_conductor.py' adding 'ironic/tests/unit/db/test_deploy_templates.py' adding 'ironic/tests/unit/db/test_firmware_component.py' adding 'ironic/tests/unit/db/test_node_history.py' adding 'ironic/tests/unit/db/test_node_inventory.py' adding 'ironic/tests/unit/db/test_node_tags.py' adding 'ironic/tests/unit/db/test_node_traits.py' adding 'ironic/tests/unit/db/test_nodes.py' adding 'ironic/tests/unit/db/test_portgroups.py' adding 'ironic/tests/unit/db/test_ports.py' adding 'ironic/tests/unit/db/test_runbooks.py' adding 'ironic/tests/unit/db/test_shard.py' adding 'ironic/tests/unit/db/test_volume_connectors.py' adding 'ironic/tests/unit/db/test_volume_targets.py' adding 'ironic/tests/unit/db/utils.py' adding 'ironic/tests/unit/db/sqlalchemy/__init__.py' adding 'ironic/tests/unit/db/sqlalchemy/test_api.py' adding 'ironic/tests/unit/db/sqlalchemy/test_migrations.py' adding 'ironic/tests/unit/db/sqlalchemy/test_models.py' adding 'ironic/tests/unit/db/sqlalchemy/test_types.py' adding 'ironic/tests/unit/dhcp/__init__.py' adding 'ironic/tests/unit/dhcp/test_dnsmasq.py' adding 'ironic/tests/unit/dhcp/test_factory.py' adding 'ironic/tests/unit/dhcp/test_neutron.py' adding 'ironic/tests/unit/drivers/__init__.py' adding 'ironic/tests/unit/drivers/boot-fallback.ipxe' adding 'ironic/tests/unit/drivers/boot.ipxe' adding 'ironic/tests/unit/drivers/ipxe_config.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template' adding 'ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template' adding 'ironic/tests/unit/drivers/ipxe_config_timeout.template' adding 'ironic/tests/unit/drivers/ks_extra_vars.tmpl' adding 'ironic/tests/unit/drivers/ks_missing_var.tmpl' adding 'ironic/tests/unit/drivers/pxe_config.template' adding 'ironic/tests/unit/drivers/pxe_grub_config.template' adding 'ironic/tests/unit/drivers/test_base.py' adding 'ironic/tests/unit/drivers/test_drac.py' adding 'ironic/tests/unit/drivers/test_fake_hardware.py' adding 'ironic/tests/unit/drivers/test_generic.py' adding 'ironic/tests/unit/drivers/test_ilo.py' adding 'ironic/tests/unit/drivers/test_ipmi.py' adding 'ironic/tests/unit/drivers/test_irmc.py' adding 'ironic/tests/unit/drivers/test_redfish.py' adding 'ironic/tests/unit/drivers/test_snmp.py' adding 'ironic/tests/unit/drivers/test_utils.py' adding 'ironic/tests/unit/drivers/third_party_driver_mock_specs.py' adding 'ironic/tests/unit/drivers/third_party_driver_mocks.py' adding 'ironic/tests/unit/drivers/modules/__init__.py' adding 'ironic/tests/unit/drivers/modules/test_agent.py' adding 'ironic/tests/unit/drivers/modules/test_agent_base.py' adding 'ironic/tests/unit/drivers/modules/test_agent_client.py' adding 'ironic/tests/unit/drivers/modules/test_agent_power.py' adding 'ironic/tests/unit/drivers/modules/test_boot_mode_utils.py' adding 'ironic/tests/unit/drivers/modules/test_console_utils.py' adding 'ironic/tests/unit/drivers/modules/test_deploy_utils.py' adding 'ironic/tests/unit/drivers/modules/test_graphical_console.py' adding 'ironic/tests/unit/drivers/modules/test_image_cache.py' adding 'ironic/tests/unit/drivers/modules/test_image_utils.py' adding 'ironic/tests/unit/drivers/modules/test_inspect_utils.py' adding 'ironic/tests/unit/drivers/modules/test_ipmitool.py' adding 'ironic/tests/unit/drivers/modules/test_ipxe.py' adding 'ironic/tests/unit/drivers/modules/test_noop.py' adding 'ironic/tests/unit/drivers/modules/test_noop_mgmt.py' adding 'ironic/tests/unit/drivers/modules/test_pxe.py' adding 'ironic/tests/unit/drivers/modules/test_ramdisk.py' adding 'ironic/tests/unit/drivers/modules/test_snmp.py' adding 'ironic/tests/unit/drivers/modules/ansible/__init__.py' adding 'ironic/tests/unit/drivers/modules/ansible/test_deploy.py' adding 'ironic/tests/unit/drivers/modules/drac/__init__.py' adding 'ironic/tests/unit/drivers/modules/drac/test_boot.py' adding 'ironic/tests/unit/drivers/modules/drac/test_inspect.py' adding 'ironic/tests/unit/drivers/modules/drac/test_management.py' adding 'ironic/tests/unit/drivers/modules/drac/test_raid.py' adding 'ironic/tests/unit/drivers/modules/drac/test_utils.py' adding 'ironic/tests/unit/drivers/modules/drac/utils.py' adding 'ironic/tests/unit/drivers/modules/ibmc/__init__.py' adding 'ironic/tests/unit/drivers/modules/ilo/__init__.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_bios.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_boot.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_common.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_console.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_inspect.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_management.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_power.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_raid.py' adding 'ironic/tests/unit/drivers/modules/ilo/test_vendor.py' adding 'ironic/tests/unit/drivers/modules/inspector/__init__.py' adding 'ironic/tests/unit/drivers/modules/inspector/test_agent.py' adding 'ironic/tests/unit/drivers/modules/inspector/test_client.py' adding 'ironic/tests/unit/drivers/modules/inspector/test_interface.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py' adding 'ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py' adding 'ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py' adding 'ironic/tests/unit/drivers/modules/intel_ipmi/base.py' adding 'ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py' adding 'ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py' adding 'ironic/tests/unit/drivers/modules/irmc/__init__.py' adding 'ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml' adding 'ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml' adding 'ironic/tests/unit/drivers/modules/irmc/test_bios.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_boot.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_common.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_inspect.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_management.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_power.py' adding 'ironic/tests/unit/drivers/modules/irmc/test_raid.py' adding 'ironic/tests/unit/drivers/modules/network/__init__.py' adding 'ironic/tests/unit/drivers/modules/network/test_common.py' adding 'ironic/tests/unit/drivers/modules/network/test_flat.py' adding 'ironic/tests/unit/drivers/modules/network/test_neutron.py' adding 'ironic/tests/unit/drivers/modules/network/test_noop.py' adding 'ironic/tests/unit/drivers/modules/network/json_samples/network_data.json' adding 'ironic/tests/unit/drivers/modules/redfish/__init__.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_bios.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_boot.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_firmware.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_firmware_utils.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_inspect.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_management.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_power.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_raid.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_utils.py' adding 'ironic/tests/unit/drivers/modules/redfish/test_vendor.py' adding 'ironic/tests/unit/drivers/modules/storage/__init__.py' adding 'ironic/tests/unit/drivers/modules/storage/test_cinder.py' adding 'ironic/tests/unit/drivers/modules/storage/test_external.py' adding 'ironic/tests/unit/drivers/modules/xclarity/__init__.py' adding 'ironic/tests/unit/objects/__init__.py' adding 'ironic/tests/unit/objects/test_allocation.py' adding 'ironic/tests/unit/objects/test_bios.py' adding 'ironic/tests/unit/objects/test_chassis.py' adding 'ironic/tests/unit/objects/test_conductor.py' adding 'ironic/tests/unit/objects/test_deploy_template.py' adding 'ironic/tests/unit/objects/test_deployment.py' adding 'ironic/tests/unit/objects/test_fields.py' adding 'ironic/tests/unit/objects/test_firmware.py' adding 'ironic/tests/unit/objects/test_node.py' adding 'ironic/tests/unit/objects/test_node_history.py' adding 'ironic/tests/unit/objects/test_node_inventory.py' adding 'ironic/tests/unit/objects/test_notification.py' adding 'ironic/tests/unit/objects/test_objects.py' adding 'ironic/tests/unit/objects/test_port.py' adding 'ironic/tests/unit/objects/test_portgroup.py' adding 'ironic/tests/unit/objects/test_trait.py' adding 'ironic/tests/unit/objects/test_volume_connector.py' adding 'ironic/tests/unit/objects/test_volume_target.py' adding 'ironic/tests/unit/objects/utils.py' adding 'ironic/tests/unit/pxe_filter/__init__.py' adding 'ironic/tests/unit/pxe_filter/test_dnsmasq.py' adding 'ironic/tests/unit/pxe_filter/test_service.py' adding 'ironic/wsgi/__init__.py' adding 'ironic-29.1.0.dev120.data/data/etc/ironic/rootwrap.conf' adding 'ironic-29.1.0.dev120.data/data/etc/ironic/rootwrap.d/ironic-utils.filters' adding 'ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/Containerfile' adding 'ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/README.rst' adding 'ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/bin/start-browser-x11vnc.sh' adding 'ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/bin/start-selenium-browser.py' adding 'ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/bin/start-xvfb.sh' adding 'ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/drivers/fake/index.html' adding 'ironic-29.1.0.dev120.data/data/share/ironic/vnc-container/drivers/fake/ironic_mascot_color.png' adding 'ironic-29.1.0.dev120.data/scripts/ironic-api-wsgi' adding 'ironic-29.1.0.dev120.dist-info/AUTHORS' adding 'ironic-29.1.0.dev120.dist-info/LICENSE' adding 'ironic-29.1.0.dev120.dist-info/METADATA' adding 'ironic-29.1.0.dev120.dist-info/WHEEL' adding 'ironic-29.1.0.dev120.dist-info/entry_points.txt' adding 'ironic-29.1.0.dev120.dist-info/pbr.json' adding 'ironic-29.1.0.dev120.dist-info/top_level.txt' adding 'ironic-29.1.0.dev120.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.dev120-py3-none-any.whl size=2263256 sha256=86560a21a453d44064f201937a4e101e7a672bbda8afa4bdd26bcea1cf0258ae Stored in directory: /builddir/.cache/pip/wheels/68/29/74/8dba3bf643fbde0557ca10dbf7c9ca1cb9dd89a177009b158c Successfully built ironic + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.YY1i6W + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64 ++ dirname /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64 + cd ironic-29.1.0.dev120 ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' ++ xargs basename --multiple ++ ls /builddir/build/BUILD/ironic-29.1.0.dev120/pyproject-wheeldir/ironic-29.1.0.dev120-py3-none-any.whl + specifier=ironic==29.1.0.dev120 + '[' -z ironic==29.1.0.dev120 ']' + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.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.dev120/pyproject-wheeldir ironic==29.1.0.dev120 Using pip 21.3.1 from /usr/lib/python3.9/site-packages/pip (python 3.9) Looking in links: /builddir/build/BUILD/ironic-29.1.0.dev120/pyproject-wheeldir Processing ./pyproject-wheeldir/ironic-29.1.0.dev120-py3-none-any.whl Installing collected packages: ironic changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-api to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-conductor to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-dbsync to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-novncproxy to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-pxe-filter to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-rootwrap to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-status to 755 Successfully installed ironic-29.1.0.dev120 + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin ']' + '[' -z s ']' + shebang_flags=-kas + /usr/bin/python3 -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/python3 -kas /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-api /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-api-wsgi /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-conductor /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-dbsync /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-novncproxy /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-pxe-filter /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-rootwrap /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-status /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-api: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-api-wsgi: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-conductor: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-dbsync: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-novncproxy: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-pxe-filter: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-rootwrap: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/ironic-status: updating + rm -rfv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin/__pycache__ + rm -f /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages ']' + site_dirs+=("/usr/lib/python3.9/site-packages") + '[' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib64/python3.9/site-packages '!=' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages ']' + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib64/python3.9/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.9/site-packages/ironic-29.1.0.dev120.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev120.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.20250522181724.3387a8f.el9.x86_64 --record /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev120.dist-info/RECORD --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev120.dist-info/RECORD removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev120.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev120.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev120.dist-info/REQUESTED' ++ cut -f1 '-d ' ++ wc -l /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64-pyproject-ghost-distinfo + lines=1 + '[' 1 -ne 1 ']' + install -p -D -m 644 /builddir/build/SOURCES/ironic.logrotate /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/etc/logrotate.d/openstack-ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.x86_64/usr/lib/systemd/system + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/etc/sudoers.d + install -p -D -m 440 /builddir/build/SOURCES/ironic-sudoers /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/etc/sudoers.d/ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/var/lib/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/var/log/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/etc/ironic/rootwrap.d + export PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64//usr/lib/python3.9/site-packages + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64//usr/lib/python3.9/site-packages + oslo-config-generator --config-file tools/config/ironic-config-generator.conf --output-file /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64//etc/ironic/rootwrap.conf + mv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64//etc/ironic/rootwrap.d/ + rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/etc/ironic/rootwrap.d + rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9 --unique-debug-suffix -29.1.0-0.20250522181724.3387a8f.el9.x86_64 --unique-debug-src-base openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 --remove-section .gnu.build.attributes -S debugsourcefiles.list /builddir/build/BUILD/ironic-29.1.0.dev120 find: 'debug': No such file or directory + /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/redhat/brp-python-bytecompile '' 1 0 Bytecompiling .py files below /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9 using python3.9 + /usr/lib/rpm/brp-python-hardlink + /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.9/site-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh from /bin/sh to #!/usr/bin/sh Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.DrToGG + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + TOX_TESTENV_PASSENV='*' + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -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-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ' + PATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib64/python3.9/site-packages:/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ironic-29.1.0.dev120/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=4 + HOSTNAME=rpmbuild + /usr/bin/python3 -m tox --current-env -q --recreate -e py39 /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) /bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) 2025-05-22 14:20:30.659 2033429 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-22 14:20:30.667 2033429 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 2025-05-22 14:20:31.188 2033432 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-22 14:20:31.210 2033432 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 2025-05-22 14:20:31.230 2033441 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-22 14:20:31.284 2033441 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 2025-05-22 14:20:31.513 2033437 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-22 14:20:31.522 2033437 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.452004s] ... 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 {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.090712s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.090034s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.076399s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.078957s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.100943s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.068235s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.085493s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch [0.507676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-83a689b9-c9a9-492e-9a4d-4eb037eae656 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}"} 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 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden [0.034946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ebb85d09-4228-414f-a21b-90187e0ebd78 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_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project [0.038088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-38dd52b0-e7a9-4e07-9e9b-c167d4d18d63 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}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.041189s] ... 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_allocation.TestListAllocations.test_allocation_get_all_non_admin [0.138971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f78c36d-7eef-49b2-bf2d-2787727fdf05 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": "98d7648a-9980-4016-84b5-3c5c47e5643a", "created_at": "2025-05-22T18:20:42.699128+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/98d7648a-9980-4016-84b5-3c5c47e5643a", "rel": "self"}, {"href": "http://localhost/allocations/98d7648a-9980-4016-84b5-3c5c47e5643a", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "68fd2159-2bcb-443d-a553-dd8476087387", "created_at": "2025-05-22T18:20:42.700550+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/68fd2159-2bcb-443d-a553-dd8476087387", "rel": "self"}, {"href": "http://localhost/allocations/68fd2159-2bcb-443d-a553-dd8476087387", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "8c534637-7f14-49d0-87bc-08fba0da21f4", "created_at": "2025-05-22T18:20:42.701598+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/8c534637-7f14-49d0-87bc-08fba0da21f4", "rel": "self"}, {"href": "http://localhost/allocations/8c534637-7f14-49d0-87bc-08fba0da21f4", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "d4096c2a-d8d5-4f03-b442-c328a15b41dc", "created_at": "2025-05-22T18:20:42.706732+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/d4096c2a-d8d5-4f03-b442-c328a15b41dc", "rel": "self"}, {"href": "http://localhost/allocations/d4096c2a-d8d5-4f03-b442-c328a15b41dc", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1b208ccb-971c-44e7-bf7c-ec347c1b4842", "created_at": "2025-05-22T18:20:42.727084+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/1b208ccb-971c-44e7-bf7c-ec347c1b4842", "rel": "self"}, {"href": "http://localhost/allocations/1b208ccb-971c-44e7-bf7c-ec347c1b4842", "rel": "bookmark"}], "node_uuid": null}]} {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_new_standard_singular_header_ok [0.804231s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.030600s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.032191s] ... ok {1} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.026720s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version [0.260923s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/89e4682a-242f-47c6-b1b3-f0c5cce1c800 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee2e8774-91a7-4a8b-bef2-28303a4359a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "89e4682a-242f-47c6-b1b3-f0c5cce1c800", "created_at": "2025-05-22T18:20:42.947760+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/89e4682a-242f-47c6-b1b3-f0c5cce1c800", "rel": "self"}, {"href": "http://localhost/allocations/89e4682a-242f-47c6-b1b3-f0c5cce1c800", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/89e4682a-242f-47c6-b1b3-f0c5cce1c800 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1ef8443-2073-4cb7-8361-230722af133f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "89e4682a-242f-47c6-b1b3-f0c5cce1c800", "created_at": "2025-05-22T18:20:42.947760+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/89e4682a-242f-47c6-b1b3-f0c5cce1c800", "rel": "self"}, {"href": "http://localhost/allocations/89e4682a-242f-47c6-b1b3-f0c5cce1c800", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.129268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/c0ae412b-db64-4e95-904a-8f8860200c75 GOT Response: 204 No Content Openstack-Request-Id: req-eca6fe8c-1ec7-4713-a1f2-cf8498b24a94 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_allocation.TestDelete.test_delete_allocation_by_name [0.060241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1 GOT Response: 204 No Content Openstack-Request-Id: req-0c049716-7063-4678-ab17-b3e9d0c72c3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field [0.141780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/99dcc2a6-eeed-4b8f-bc02-21f00509fac3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0487b379-83c9-4827-aa3b-fdbf8660cff6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "99dcc2a6-eeed-4b8f-bc02-21f00509fac3", "created_at": "2025-05-22T18:20:43.149718+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/99dcc2a6-eeed-4b8f-bc02-21f00509fac3", "rel": "self"}, {"href": "http://localhost/allocations/99dcc2a6-eeed-4b8f-bc02-21f00509fac3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.070784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-914de538-18c2-41c8-b3de-b11f221a3c2b X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present [0.173814s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/b0d62497-2f0b-447d-b8c8-1edf26b0ddc4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5693dee-6ab1-446f-a0db-43dcb1ce503f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b0d62497-2f0b-447d-b8c8-1edf26b0ddc4", "created_at": "2025-05-22T18:20:43.291745+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/b0d62497-2f0b-447d-b8c8-1edf26b0ddc4", "rel": "self"}, {"href": "http://localhost/allocations/b0d62497-2f0b-447d-b8c8-1edf26b0ddc4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.126828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1.json GOT Response: 204 No Content Openstack-Request-Id: req-282555f3-8e57-4e70-9774-b83350546cce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.086995s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/0ccb1375-6879-40a6-bfbe-9c2388f35f2f/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_allocation.TestDelete.test_delete_allocation_by_name_with_json_not_found [0.080088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-15da00d6-bef4-4780-9cea-ecd9aa52df23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation alloc1.json could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.051966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/5893f497-4eb7-4445-b951-edc15083d9cf/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_allocation.TestDelete.test_delete_allocation_by_node [0.071910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 204 No Content Openstack-Request-Id: req-78a8880a-905e-4cee-a65c-1e0057b6f128 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.057502s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2caf019f-065c-481a-86c8-33e48e9d1a76 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": "f232fd68-41bc-4a8f-920d-7b7a675a628d", "created_at": "2025-05-22T18:20:43.540970+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/f232fd68-41bc-4a8f-920d-7b7a675a628d", "rel": "self"}, {"href": "http://localhost/allocations/f232fd68-41bc-4a8f-920d-7b7a675a628d", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "394e883b-78aa-4126-bb31-99dbe8d8b1e9", "created_at": "2025-05-22T18:20:43.547749+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/394e883b-78aa-4126-bb31-99dbe8d8b1e9", "rel": "self"}, {"href": "http://localhost/allocations/394e883b-78aa-4126-bb31-99dbe8d8b1e9", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "8300a610-aff9-40be-af9c-26d113f1d1f9", "created_at": "2025-05-22T18:20:43.548701+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/8300a610-aff9-40be-af9c-26d113f1d1f9", "rel": "self"}, {"href": "http://localhost/allocations/8300a610-aff9-40be-af9c-26d113f1d1f9", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=8300a610-aff9-40be-af9c-26d113f1d1f9"} {0} ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup [0.431600s] ... 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 {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.076687s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.066635s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-97a56774-b3bb-4b95-a8e3-4b48c52d9c7b 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": "3df47079-acd6-4b7e-9ce0-83931f84414b", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/3df47079-acd6-4b7e-9ce0-83931f84414b", "rel": "self"}, {"href": "http://localhost/allocations/3df47079-acd6-4b7e-9ce0-83931f84414b", "rel": "bookmark"}]}, {"uuid": "cf3688bd-7d61-4215-a703-160184956699", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/cf3688bd-7d61-4215-a703-160184956699", "rel": "self"}, {"href": "http://localhost/allocations/cf3688bd-7d61-4215-a703-160184956699", "rel": "bookmark"}]}, {"uuid": "f8a027de-3531-43aa-a6eb-7e697824228d", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/f8a027de-3531-43aa-a6eb-7e697824228d", "rel": "self"}, {"href": "http://localhost/allocations/f8a027de-3531-43aa-a6eb-7e697824228d", "rel": "bookmark"}]}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=f8a027de-3531-43aa-a6eb-7e697824228d"} {0} ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri [0.064413s] ... 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.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit [0.052682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4af7963-d2ab-4447-a802-47cae371b053 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": "fbc245fb-2742-4ac1-be93-95c33f63e52c", "created_at": "2025-05-22T18:20:43.671200+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/fbc245fb-2742-4ac1-be93-95c33f63e52c", "rel": "self"}, {"href": "http://localhost/allocations/fbc245fb-2742-4ac1-be93-95c33f63e52c", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1ae2d10d-a318-4cb0-be69-a587e020eb3a", "created_at": "2025-05-22T18:20:43.672325+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/1ae2d10d-a318-4cb0-be69-a587e020eb3a", "rel": "self"}, {"href": "http://localhost/allocations/1ae2d10d-a318-4cb0-be69-a587e020eb3a", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "6226028d-58af-45e6-a48e-ac855364aaa9", "created_at": "2025-05-22T18:20:43.673202+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/6226028d-58af-45e6-a48e-ac855364aaa9", "rel": "self"}, {"href": "http://localhost/allocations/6226028d-58af-45e6-a48e-ac855364aaa9", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=6226028d-58af-45e6-a48e-ac855364aaa9"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.095769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22f487a1-23cf-4af0-8ac8-d3f34708b06b/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-09d53802-05ba-4685-b258-b0e2ec014ad3 X-Openstack-Ironic-Api-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 22f487a1-23cf-4af0-8ac8-d3f34708b06b was not found\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.042686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0910ef53-34bc-4b90-8c23-511d48be4887 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": []} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.062485s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/50f50a8a-d051-4e5e-9e7a-b8b04d62c0c5 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.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.065598s] ... 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\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.108908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=node-1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1a093d2-3aff-443f-a43c-fc3183aa75a9 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": "0de82a64-f8dc-42a3-8571-86f3398deeab", "created_at": "2025-05-22T18:20:43.795986+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/0de82a64-f8dc-42a3-8571-86f3398deeab", "rel": "self"}, {"href": "http://localhost/allocations/0de82a64-f8dc-42a3-8571-86f3398deeab", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "35eafcdb-73ae-42ac-ba9c-f88c0f905420", "created_at": "2025-05-22T18:20:43.796906+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/35eafcdb-73ae-42ac-ba9c-f88c0f905420", "rel": "self"}, {"href": "http://localhost/allocations/35eafcdb-73ae-42ac-ba9c-f88c0f905420", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "13912e11-8ba4-4fd4-873a-70a627613115", "created_at": "2025-05-22T18:20:43.797779+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/13912e11-8ba4-4fd4-873a-70a627613115", "rel": "self"}, {"href": "http://localhost/allocations/13912e11-8ba4-4fd4-873a-70a627613115", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.053853s] ... 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-c3d79b10-fa2c-427c-ae53-d4aa7d549925 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": "fda83482-2efc-4226-9e0d-77e02237b8ea", "created_at": "2025-05-22T18:20:43.876104+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/fda83482-2efc-4226-9e0d-77e02237b8ea", "rel": "self"}, {"href": "http://localhost/allocations/fda83482-2efc-4226-9e0d-77e02237b8ea", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.075297s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/0b6d9205-233b-4424-be49-a53d974a23d7/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ccca6a04-c505-4f0b-b243-fc11f4fcb527 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 0b6d9205-233b-4424-be49-a53d974a23d7 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.056805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=banana WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a1833703-a0a2-48dc-8d3a-f91621ebe64b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.679338s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/b5c14e09-74f7-4147-97e1-abd151349e2f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba06a304-596e-4080-bf38-90e0c05c1a69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b5c14e09-74f7-4147-97e1-abd151349e2f", "created_at": "2025-05-22T18:20:43.918377+00:00", "updated_at": "2025-05-22T18:20:43.973414+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/b5c14e09-74f7-4147-97e1-abd151349e2f", "rel": "self"}, {"href": "http://localhost/allocations/b5c14e09-74f7-4147-97e1-abd151349e2f", "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 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner [0.050028s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14d64c75-0c57-4dd7-8006-1adb479803e2 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": "082e87d2-41bb-4c5c-892c-0863eaab878e", "created_at": "2025-05-22T18:20:43.991992+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/082e87d2-41bb-4c5c-892c-0863eaab878e", "rel": "self"}, {"href": "http://localhost/allocations/082e87d2-41bb-4c5c-892c-0863eaab878e", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1fc1d0d5-ee66-4f6f-b768-8e6fab0de3bd", "created_at": "2025-05-22T18:20:43.997035+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/1fc1d0d5-ee66-4f6f-b768-8e6fab0de3bd", "rel": "self"}, {"href": "http://localhost/allocations/1fc1d0d5-ee66-4f6f-b768-8e6fab0de3bd", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1ccde381-8387-4f49-8730-142b863df267", "created_at": "2025-05-22T18:20:43.997986+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/1ccde381-8387-4f49-8730-142b863df267", "rel": "self"}, {"href": "http://localhost/allocations/1ccde381-8387-4f49-8730-142b863df267", "rel": "bookmark"}], "node_uuid": null}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.095205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/f793c8cc-d513-4b96-a7d3-70676d233b88 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-aa411a83-4928-4224-8b59-ff096bef0afb X-Openstack-Ironic-Api-Maximum-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.9/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_allocation.TestListAllocations.test_get_all_by_owner_not_allowed [0.038752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0f818ded-acf6-4c56-ac1d-3c63878f880c 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}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed_mismatch [0.043053s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-568fb42b-fa30-47d2-b8cc-8ad6bc71e826 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.TestPost.test_create_chassis [0.098862s] ... 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-008cb1d0-6cb3-4ace-8bdf-94b3a0c07a05 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-9aa8a969-ca9c-449c-9dbe-11047485508c 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"}]]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.059531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?state=allocating WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86467770-f693-4e75-af06-6cc361dc6e20 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": "d7a6710f-d8b4-4ebe-8a23-4b11854d0e0b", "created_at": "2025-05-22T18:20:44.135367+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/d7a6710f-d8b4-4ebe-8a23-4b11854d0e0b", "rel": "self"}, {"href": "http://localhost/allocations/d7a6710f-d8b4-4ebe-8a23-4b11854d0e0b", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "2205eaa1-f445-4300-b3c5-2a31d6b29778", "created_at": "2025-05-22T18:20:44.136369+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/2205eaa1-f445-4300-b3c5-2a31d6b29778", "rel": "self"}, {"href": "http://localhost/allocations/2205eaa1-f445-4300-b3c5-2a31d6b29778", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "70d1d4b9-5647-4bcc-a7de-28afaa861fc0", "created_at": "2025-05-22T18:20:44.139865+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/70d1d4b9-5647-4bcc-a7de-28afaa861fc0", "rel": "self"}, {"href": "http://localhost/allocations/70d1d4b9-5647-4bcc-a7de-28afaa861fc0", "rel": "bookmark"}], "node_uuid": null}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.091692s] ... 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-c023dbe0-c3fb-4e5f-9d55-a46ea8874676 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-22T18:20:44.182932+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-e4bca29b-ce94-4050-a106-cd269ddb3343 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-22T18:20:44.182932+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_allocation.TestListAllocations.test_get_by_node_resource [0.091951s] ... 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-25163b07-0956-455f-8985-08b8c258df5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6cf723eb-7862-410b-a09d-1270cb4fa102", "created_at": "2025-05-22T18:20:44.202074+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/6cf723eb-7862-410b-a09d-1270cb4fa102", "rel": "self"}, {"href": "http://localhost/allocations/6cf723eb-7862-410b-a09d-1270cb4fa102", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error [0.073008s] ... 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-c5c780dc-2db0-43e9-9ee7-11c61e099fa7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.040168s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/71591ce2-3be7-4d90-b608-9a361cfed1a9 WITH {} 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_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.042272s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.041627s] ... 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-7ed7eca1-fdd8-4331-817f-4d1c1500dbf0 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/6b217ff1-2171-4d37-bf6e-9b5247ddedc4", "rel": "self"}, {"href": "http://localhost/allocations/6b217ff1-2171-4d37-bf6e-9b5247ddedc4", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.092394s] ... 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/46fb9f6c-d4e5-40a6-937d-1b57c8db3c80 Openstack-Request-Id: req-4595c1ff-0ad8-4777-8582-729e6d583a67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "46fb9f6c-d4e5-40a6-937d-1b57c8db3c80", "created_at": "2025-05-22T18:20:44.355491+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/46fb9f6c-d4e5-40a6-937d-1b57c8db3c80", "rel": "self"}, {"href": "http://localhost/chassis/46fb9f6c-d4e5-40a6-937d-1b57c8db3c80", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/46fb9f6c-d4e5-40a6-937d-1b57c8db3c80/nodes", "rel": "self"}, {"href": "http://localhost/chassis/46fb9f6c-d4e5-40a6-937d-1b57c8db3c80/nodes", "rel": "bookmark"}]]} GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e710449-7b9b-4346-af3c-1bc7a2f335b7 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": "46fb9f6c-d4e5-40a6-937d-1b57c8db3c80", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/46fb9f6c-d4e5-40a6-937d-1b57c8db3c80", "rel": "self"}, {"href": "http://localhost/chassis/46fb9f6c-d4e5-40a6-937d-1b57c8db3c80", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.427277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/bd290e16-6f0e-46b2-9cc8-cc4332ea4265 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-6318955e-5a4c-4090-98a9-83a955c24fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bd290e16-6f0e-46b2-9cc8-cc4332ea4265", "created_at": "2025-05-22T18:20:44.361545+00:00", "updated_at": "2025-05-22T18:20:44.399327+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/bd290e16-6f0e-46b2-9cc8-cc4332ea4265", "rel": "self"}, {"href": "http://localhost/allocations/bd290e16-6f0e-46b2-9cc8-cc4332ea4265", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/bd290e16-6f0e-46b2-9cc8-cc4332ea4265 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3fd38dac-2aff-47e2-82ee-60738f4aa692 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bd290e16-6f0e-46b2-9cc8-cc4332ea4265", "created_at": "2025-05-22T18:20:44.361545+00:00", "updated_at": "2025-05-22T18:20:44.399327+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/bd290e16-6f0e-46b2-9cc8-cc4332ea4265", "rel": "self"}, {"href": "http://localhost/allocations/bd290e16-6f0e-46b2-9cc8-cc4332ea4265", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.067287s] ... 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-7700b9e3-ae7c-4507-9d0d-dbebfca0ca72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 1334 is not of type 'string', 'null'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.087264s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47dc5529-b2f2-4ca6-8231-978debc8c10b 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": "563deb10-0453-4f67-9085-58a7d625776e", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/563deb10-0453-4f67-9085-58a7d625776e", "rel": "self"}, {"href": "http://localhost/allocations/563deb10-0453-4f67-9085-58a7d625776e", "rel": "bookmark"}]}, {"uuid": "f4fde82b-9c2b-43b9-88a1-b39a61f6f799", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/f4fde82b-9c2b-43b9-88a1-b39a61f6f799", "rel": "self"}, {"href": "http://localhost/allocations/f4fde82b-9c2b-43b9-88a1-b39a61f6f799", "rel": "bookmark"}]}, {"uuid": "1c61375d-e3b7-46fc-ae90-475c600c8026", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/1c61375d-e3b7-46fc-ae90-475c600c8026", "rel": "self"}, {"href": "http://localhost/allocations/1c61375d-e3b7-46fc-ae90-475c600c8026", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.062179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/f142edd5-5ed1-410e-9c25-324c72c74ee2 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-027daae5-2967-43e4-92ae-e9adab11e74a X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.832635s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-19322357-f227-436d-9ddc-2f6357176470 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-4a60ad6f-c187-48aa-b0da-bef7875e29c2 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.056639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=node_uuid&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0e6099e-bec0-414f-b4d7-9c891e1a0298 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/7d22d590-7896-4d3a-81c9-fe9997edd88d", "rel": "self"}, {"href": "http://localhost/allocations/7d22d590-7896-4d3a-81c9-fe9997edd88d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"links": [{"href": "http://localhost/v1/allocations/db2470d8-6e1f-4606-bf4f-ab2818a0598c", "rel": "self"}, {"href": "http://localhost/allocations/db2470d8-6e1f-4606-bf4f-ab2818a0598c", "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=db2470d8-6e1f-4606-bf4f-ab2818a0598c"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.082604s] ... 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-33a081c1-5faf-4e3c-b069-231dcd8731d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.039662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/dc6267c4-1bbd-45c7-9fb4-e4b0ef9b56f6?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-06971a01-1aa2-435c-9aa8-aa8edb0967e3 X-Openstack-Ironic-Api-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_chassis.TestDelete.test_delete_chassis_not_found [0.110566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/c2cc7fb3-08f6-4b7b-90bb-1f4dc33ae786 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f9fd225a-fb15-4b15-87fe-0ac9ff0806e1 X-Openstack-Ironic-Api-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 c2cc7fb3-08f6-4b7b-90bb-1f4dc33ae786 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.053235s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/bdea5e45-6191-4512-9b3f-8067fb3c3a2f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1bbef73-bdba-4ab5-99a5-30f98d315806 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bdea5e45-6191-4512-9b3f-8067fb3c3a2f", "created_at": "2025-05-22T18:20:44.591918+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/bdea5e45-6191-4512-9b3f-8067fb3c3a2f", "rel": "self"}, {"href": "http://localhost/allocations/bdea5e45-6191-4512-9b3f-8067fb3c3a2f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.098008s] ... 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-c17e8f5c-d7fa-4120-a0b0-017f3c331267 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-22T18:20:44.602364+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-5cea1080-4e7a-4c33-a02e-69bc0a926847 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-22T18:20:44.602364+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"}]]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.154631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c365efd-e914-4ac4-8e4e-2464a3d93e7a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e1485b38-a858-4970-91b5-2275cef7b3d7", "created_at": "2025-05-22T18:20:44.543351+00:00", "updated_at": "2025-05-22T18:20:44.579457+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/e1485b38-a858-4970-91b5-2275cef7b3d7", "rel": "self"}, {"href": "http://localhost/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8452ce79-84e9-41d2-ade6-7d4751235907 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e1485b38-a858-4970-91b5-2275cef7b3d7", "created_at": "2025-05-22T18:20:44.543351+00:00", "updated_at": "2025-05-22T18:20:44.579457+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/e1485b38-a858-4970-91b5-2275cef7b3d7", "rel": "self"}, {"href": "http://localhost/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7", "rel": "bookmark"}], "node_uuid": null} PATCH /v1/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-63538838-a1f6-42a7-8d8e-50590986b982 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e1485b38-a858-4970-91b5-2275cef7b3d7", "created_at": "2025-05-22T18:20:44.543351+00:00", "updated_at": "2025-05-22T18:20:44.620917+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7", "rel": "self"}, {"href": "http://localhost/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a28a6e8e-b806-40b0-888c-eaac2d09e63a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e1485b38-a858-4970-91b5-2275cef7b3d7", "created_at": "2025-05-22T18:20:44.543351+00:00", "updated_at": "2025-05-22T18:20:44.620917+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7", "rel": "self"}, {"href": "http://localhost/allocations/e1485b38-a858-4970-91b5-2275cef7b3d7", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.051302s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/e8a030f6-d1af-4585-99d6-3dc3254da94c?fields=resource_class,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2b8330b-8cbc-4415-bebb-9e4fc02d8c25 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/e8a030f6-d1af-4585-99d6-3dc3254da94c", "rel": "self"}, {"href": "http://localhost/allocations/e8a030f6-d1af-4585-99d6-3dc3254da94c", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.039595s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/51fc778a-8f37-4759-9cc8-03fbb2a8e9e7 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_chassis.TestPost.test_create_chassis_valid_extra [0.087056s] ... 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-c8b30581-5311-4dde-b4ca-cf89aa28380a 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-22T18:20:44.686692+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-0be6aac7-3d47-42fe-b4dd-f7615cebf6a6 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-22T18:20:44.686692+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_chassis.TestDelete.test_delete_chassis_with_node [0.110582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-526982cb-f844-4ae3-aa93-531c23367123 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.099144s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/5c284401-5f75-47ec-9b8e-1895251036b4 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ad7c0a84-aa36-44ad-afba-5df91cba186f X-Openstack-Ironic-Api-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 non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.043521s] ... 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\"}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_double_json_in_name [0.047130s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/5af278a4-3103-4a40-bd18-6875f86f2899 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5dfc93a1-15a8-4d8f-8bce-a9fadd7e553d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5af278a4-3103-4a40-bd18-6875f86f2899", "created_at": "2025-05-22T18:20:44.788950+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/5af278a4-3103-4a40-bd18-6875f86f2899", "rel": "self"}, {"href": "http://localhost/allocations/5af278a4-3103-4a40-bd18-6875f86f2899", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.092527s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dcc343e6-6895-453e-ba7b-b25801984309 X-Openstack-Ironic-Api-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_allocation.TestListAllocations.test_get_one_with_json [0.047818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/54adeacb-7dca-4c61-a397-9b869027a2a0.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73cc66ec-73ce-4f53-88fd-50a6c2520ba7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "54adeacb-7dca-4c61-a397-9b869027a2a0", "created_at": "2025-05-22T18:20:44.839992+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/54adeacb-7dca-4c61-a397-9b869027a2a0", "rel": "self"}, {"href": "http://localhost/allocations/54adeacb-7dca-4c61-a397-9b869027a2a0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular [0.126371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/eeb5e2a7-84c8-46eb-a98a-99fe8e302089 WITH [{'path': '/extra/a', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81bb0a3b-fceb-43f2-8ea3-85b47775b029 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "eeb5e2a7-84c8-46eb-a98a-99fe8e302089", "created_at": "2025-05-22T18:20:44.809681+00:00", "updated_at": "2025-05-22T18:20:44.845588+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/eeb5e2a7-84c8-46eb-a98a-99fe8e302089", "rel": "self"}, {"href": "http://localhost/allocations/eeb5e2a7-84c8-46eb-a98a-99fe8e302089", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/eeb5e2a7-84c8-46eb-a98a-99fe8e302089 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc1f2c9c-5676-47bc-8f43-c0d177842799 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "eeb5e2a7-84c8-46eb-a98a-99fe8e302089", "created_at": "2025-05-22T18:20:44.809681+00:00", "updated_at": "2025-05-22T18:20:44.845588+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/eeb5e2a7-84c8-46eb-a98a-99fe8e302089", "rel": "self"}, {"href": "http://localhost/allocations/eeb5e2a7-84c8-46eb-a98a-99fe8e302089", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.146514s] ... 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-b31beade-5a61-4cb3-a3b2-de3e7bc121a1 X-Openstack-Ironic-Api-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_collection.TestCollection.test_get_next [0.076922s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.066779s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/368bf639-9d50-4f65-8dba-3bcd87168f76 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b74e4b8b-4334-4131-af5b-79c428d858a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "368bf639-9d50-4f65-8dba-3bcd87168f76", "created_at": "2025-05-22T18:20:44.900482+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/368bf639-9d50-4f65-8dba-3bcd87168f76", "rel": "self"}, {"href": "http://localhost/allocations/368bf639-9d50-4f65-8dba-3bcd87168f76", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.090651s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be6ab84d-b565-4e0a-9879-fedf400c3935 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": "9ad3c53a-bec1-422b-afbc-c4a2ccb0cf9d", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/9ad3c53a-bec1-422b-afbc-c4a2ccb0cf9d", "rel": "self"}, {"href": "http://localhost/conductors/9ad3c53a-bec1-422b-afbc-c4a2ccb0cf9d", "rel": "bookmark"}], "alive": true}, {"hostname": "c7d9c139-46a8-4d9a-a206-1b148e3d78a3", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/c7d9c139-46a8-4d9a-a206-1b148e3d78a3", "rel": "self"}, {"href": "http://localhost/conductors/c7d9c139-46a8-4d9a-a206-1b148e3d78a3", "rel": "bookmark"}], "alive": true}, {"hostname": "b731aca6-c33e-4fde-bd4d-58c22896c62e", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/b731aca6-c33e-4fde-bd4d-58c22896c62e", "rel": "self"}, {"href": "http://localhost/conductors/b731aca6-c33e-4fde-bd4d-58c22896c62e", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=b731aca6-c33e-4fde-bd4d-58c22896c62e"} {0} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next [0.065362s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_not_found [0.044970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/bf4c1df1-fb3b-4d36-b485-6a1e8b374511.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ec7a274-9a80-4af8-99aa-0dc4b597dbb9 X-Openstack-Ironic-Api-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 bf4c1df1-fb3b-4d36-b485-6a1e8b374511.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.118672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/50cba1fa-cf08-4542-bb9a-04f53dcd5275 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-68e10529-d325-416e-908b-94f818e99d9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.040675s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/68879d06-d814-4ed9-ac1a-9d017793390b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a80b7185-6b66-43dc-b5a1-4039aa4bf2ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "68879d06-d814-4ed9-ac1a-9d017793390b", "created_at": "2025-05-22T18:20:44.997458+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/68879d06-d814-4ed9-ac1a-9d017793390b", "rel": "self"}, {"href": "http://localhost/allocations/68879d06-d814-4ed9-ac1a-9d017793390b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links [0.062630s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields [0.097155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d34c212b-0308-41f0-b9a9-2eee81bc30c0 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": "149a9be5-3ced-4b29-af6d-9927e2fb21dd", "links": [{"href": "http://localhost/v1/conductors/149a9be5-3ced-4b29-af6d-9927e2fb21dd", "rel": "self"}, {"href": "http://localhost/conductors/149a9be5-3ced-4b29-af6d-9927e2fb21dd", "rel": "bookmark"}], "alive": true}, {"hostname": "946ec22b-bab5-48f2-80c1-f874735ad0f5", "links": [{"href": "http://localhost/v1/conductors/946ec22b-bab5-48f2-80c1-f874735ad0f5", "rel": "self"}, {"href": "http://localhost/conductors/946ec22b-bab5-48f2-80c1-f874735ad0f5", "rel": "bookmark"}], "alive": true}, {"hostname": "87221529-83f0-4111-9b1f-2743de957823", "links": [{"href": "http://localhost/v1/conductors/87221529-83f0-4111-9b1f-2743de957823", "rel": "self"}, {"href": "http://localhost/conductors/87221529-83f0-4111-9b1f-2743de957823", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=87221529-83f0-4111-9b1f-2743de957823"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.113482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/0707eff8-6bb4-4135-bcc4-ea2ec9346290 WITH [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b29697f5-1c07-4e29-856c-b02892bad866 X-Openstack-Ironic-Api-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_allocation.TestListAllocations.test_get_owner_field [0.087239s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/61c60f10-3c06-4cf2-acc7-e9ce09a6a10e?fields=owner WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d4534d6-a631-43f9-9264-bd657e9d2e13 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/61c60f10-3c06-4cf2-acc7-e9ce09a6a10e", "rel": "self"}, {"href": "http://localhost/allocations/61c60f10-3c06-4cf2-acc7-e9ce09a6a10e", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name [0.099974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 204 No Content Openstack-Request-Id: req-8172a57e-1251-422d-abe7-a4649f46302c 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_conductor.TestListConductors.test_collection_links_default_limit [0.097847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbb411fb-772f-44d0-8d6e-46bf28636eb2 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": "6f925eb4-23ba-488b-9f64-4ed70b397abe", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/6f925eb4-23ba-488b-9f64-4ed70b397abe", "rel": "self"}, {"href": "http://localhost/conductors/6f925eb4-23ba-488b-9f64-4ed70b397abe", "rel": "bookmark"}], "alive": true}, {"hostname": "dd5cbb2a-0271-4e34-9407-4d6e48deac0f", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/dd5cbb2a-0271-4e34-9407-4d6e48deac0f", "rel": "self"}, {"href": "http://localhost/conductors/dd5cbb2a-0271-4e34-9407-4d6e48deac0f", "rel": "bookmark"}], "alive": true}, {"hostname": "bec3796c-27c4-4a4e-a435-d4f6c13026e7", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/bec3796c-27c4-4a4e-a435-d4f6c13026e7", "rel": "self"}, {"href": "http://localhost/conductors/bec3796c-27c4-4a4e-a435-d4f6c13026e7", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=bec3796c-27c4-4a4e-a435-d4f6c13026e7"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.084795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5198b9e7-7a70-4795-83e8-8499bf83fade X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.112728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/127ec757-c0b8-48e6-a093-8c246ef9fe04 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e13a34d3-2334-43fc-8c76-61fb75a950d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "127ec757-c0b8-48e6-a093-8c246ef9fe04", "created_at": "2025-05-22T18:20:45.145068+00:00", "updated_at": "2025-05-22T18:20:45.185099+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/127ec757-c0b8-48e6-a093-8c246ef9fe04", "rel": "self"}, {"href": "http://localhost/allocations/127ec757-c0b8-48e6-a093-8c246ef9fe04", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/127ec757-c0b8-48e6-a093-8c246ef9fe04 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4bd90545-3b74-49ce-907b-81402125f481 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "127ec757-c0b8-48e6-a093-8c246ef9fe04", "created_at": "2025-05-22T18:20:45.145068+00:00", "updated_at": "2025-05-22T18:20:45.185099+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/127ec757-c0b8-48e6-a093-8c246ef9fe04", "rel": "self"}, {"href": "http://localhost/allocations/127ec757-c0b8-48e6-a093-8c246ef9fe04", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.128127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/34eac05c-6b12-4c63-8692-d6a43e093397 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d867c739-d6d2-4b91-96f1-4f34cac17669 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "34eac05c-6b12-4c63-8692-d6a43e093397", "created_at": "2025-05-22T18:20:45.165933+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/34eac05c-6b12-4c63-8692-d6a43e093397", "rel": "self"}, {"href": "http://localhost/allocations/34eac05c-6b12-4c63-8692-d6a43e093397", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/34eac05c-6b12-4c63-8692-d6a43e093397 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53b4a2fa-bd07-4556-aec8-1429d91bfc97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "34eac05c-6b12-4c63-8692-d6a43e093397", "created_at": "2025-05-22T18:20:45.165933+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/34eac05c-6b12-4c63-8692-d6a43e093397", "rel": "self"}, {"href": "http://localhost/allocations/34eac05c-6b12-4c63-8692-d6a43e093397", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /allocations/34eac05c-6b12-4c63-8692-d6a43e093397 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b16cc0c-2ed3-43bf-94ee-c75dbf8251fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "34eac05c-6b12-4c63-8692-d6a43e093397", "created_at": "2025-05-22T18:20:45.165933+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/34eac05c-6b12-4c63-8692-d6a43e093397", "rel": "self"}, {"href": "http://localhost/allocations/34eac05c-6b12-4c63-8692-d6a43e093397", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.032703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 204 No Content Openstack-Request-Id: req-afa85203-723e-4d79-9d6a-1dba73874fd5 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_conductor.TestListConductors.test_empty [0.110730s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93eee382-4f93-4781-92d7-3ab330a96e9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": []} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json_not_found [0.031542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ee004cde-95ee-4c6d-b55e-9ce855d52830 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.094114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/d41d8d27-54f7-4e43-a637-0928d5648ff3 WITH [{'path': '/name', 'value': None, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-909b0103-1a2c-414e-bc20-7e952ca581be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d41d8d27-54f7-4e43-a637-0928d5648ff3", "created_at": "2025-05-22T18:20:45.264474+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/d41d8d27-54f7-4e43-a637-0928d5648ff3", "rel": "self"}, {"href": "http://localhost/allocations/d41d8d27-54f7-4e43-a637-0928d5648ff3", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/d41d8d27-54f7-4e43-a637-0928d5648ff3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-522476d7-a3c5-4a35-a3cd-08005fa1abeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d41d8d27-54f7-4e43-a637-0928d5648ff3", "created_at": "2025-05-22T18:20:45.264474+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/d41d8d27-54f7-4e43-a637-0928d5648ff3", "rel": "self"}, {"href": "http://localhost/allocations/d41d8d27-54f7-4e43-a637-0928d5648ff3", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.038531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/a22fa456-02a6-48a6-bff6-175f6d0152fd GOT Response: 204 No Content Openstack-Request-Id: req-eb3ab909-be4a-4685-9fc6-31d63e9fd790 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_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.041839s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/23b1698f-d3d3-45ce-be1a-b7ca6706a98a.json GOT Response: 204 No Content Openstack-Request-Id: req-897ce11c-5130-4c1f-a5c0-a45e7f8687c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.137535s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d87e4fa6-1bcd-43a0-8f04-5fcd0d40aa6d 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": "6a1c91dd-81ad-4910-be75-8ca75d286f5c", "created_at": "2025-05-22T18:20:45.282031+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/6a1c91dd-81ad-4910-be75-8ca75d286f5c", "rel": "self"}, {"href": "http://localhost/allocations/6a1c91dd-81ad-4910-be75-8ca75d286f5c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c24a4433-4cf2-44f0-b88c-bb40d7aa88f1", "created_at": "2025-05-22T18:20:45.298639+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/c24a4433-4cf2-44f0-b88c-bb40d7aa88f1", "rel": "self"}, {"href": "http://localhost/allocations/c24a4433-4cf2-44f0-b88c-bb40d7aa88f1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8ae0d3a0-d9a3-4957-98ca-6d89fb3b680d", "created_at": "2025-05-22T18:20:45.299667+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/8ae0d3a0-d9a3-4957-98ca-6d89fb3b680d", "rel": "self"}, {"href": "http://localhost/allocations/8ae0d3a0-d9a3-4957-98ca-6d89fb3b680d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "0bbf9443-9b92-4478-ba09-1db354b38798", "created_at": "2025-05-22T18:20:45.300572+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/0bbf9443-9b92-4478-ba09-1db354b38798", "rel": "self"}, {"href": "http://localhost/allocations/0bbf9443-9b92-4478-ba09-1db354b38798", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a93f8621-6e9b-45bd-b021-1cddc4ca33c7", "created_at": "2025-05-22T18:20:45.301436+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/a93f8621-6e9b-45bd-b021-1cddc4ca33c7", "rel": "self"}, {"href": "http://localhost/allocations/a93f8621-6e9b-45bd-b021-1cddc4ca33c7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.119260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7d86a9a-4aed-48c5-af07-d91113e3adbb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}, {"hostname": "stein.rocks", "links": [{"href": "http://localhost/v1/conductors/stein.rocks", "rel": "self"}, {"href": "http://localhost/conductors/stein.rocks", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json_not_found [0.053376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/bb926f2f-b344-499b-abbc-1f5b8104d6f2.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aa33edd6-2f29-4a6f-800b-aa7492abd80a X-Openstack-Ironic-Api-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 bb926f2f-b344-499b-abbc-1f5b8104d6f2.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular [0.117704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/70c6240b-fd13-411a-8890-06dc124358b7 WITH [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12529a75-33d7-488c-a33d-2ea4b25a7645 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "70c6240b-fd13-411a-8890-06dc124358b7", "created_at": "2025-05-22T18:20:45.373944+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/70c6240b-fd13-411a-8890-06dc124358b7", "rel": "self"}, {"href": "http://localhost/allocations/70c6240b-fd13-411a-8890-06dc124358b7", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/70c6240b-fd13-411a-8890-06dc124358b7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebfed195-de66-4cb9-a6e3-b61cd8020b5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "70c6240b-fd13-411a-8890-06dc124358b7", "created_at": "2025-05-22T18:20:45.373944+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/70c6240b-fd13-411a-8890-06dc124358b7", "rel": "self"}, {"href": "http://localhost/allocations/70c6240b-fd13-411a-8890-06dc124358b7", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.048746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/e5f09199-4586-494a-9f53-64d365fa856e 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_allocation.TestListAllocations.test_one [0.091925s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11e11b55-c511-4c69-8fd8-1b04df620540 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": "18fcc017-20ca-4a98-915a-b25fe59d8aca", "created_at": "2025-05-22T18:20:45.441345+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/18fcc017-20ca-4a98-915a-b25fe59d8aca", "rel": "self"}, {"href": "http://localhost/allocations/18fcc017-20ca-4a98-915a-b25fe59d8aca", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.046259s] ... 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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.119348s] ... 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-d88a34f4-b182-46a1-b9b2-99de95b5f012 X-Openstack-Ironic-Api-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_allocation.TestListAllocations.test_sort_key [0.096801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3c3bc5a-e5bd-42a4-82f3-3c42897dbe73 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": "0d36afe5-345c-4b4c-9da5-60e57527c071", "created_at": "2025-05-22T18:20:45.530587+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/0d36afe5-345c-4b4c-9da5-60e57527c071", "rel": "self"}, {"href": "http://localhost/allocations/0d36afe5-345c-4b4c-9da5-60e57527c071", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "958732c6-db7f-4405-a896-4cba6fc27a7a", "created_at": "2025-05-22T18:20:45.523994+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/958732c6-db7f-4405-a896-4cba6fc27a7a", "rel": "self"}, {"href": "http://localhost/allocations/958732c6-db7f-4405-a896-4cba6fc27a7a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f918e5d7-dc54-49e2-8503-e2fde098a78c", "created_at": "2025-05-22T18:20:45.524910+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/f918e5d7-dc54-49e2-8503-e2fde098a78c", "rel": "self"}, {"href": "http://localhost/allocations/f918e5d7-dc54-49e2-8503-e2fde098a78c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.164243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/7ab9faec-0bad-4a3c-b3f5-945d7f64130b WITH [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fe6e9c8b-55de-4762-bba5-d41f4b494e27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.047376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b1ffc28c-1ce6-4821-9d62-bea3d1675648 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": "598f5a7b-6f25-433b-8614-ac8218a622ad", "created_at": "2025-05-22T18:20:45.600194+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/598f5a7b-6f25-433b-8614-ac8218a622ad", "rel": "self"}, {"href": "http://localhost/allocations/598f5a7b-6f25-433b-8614-ac8218a622ad", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "08c40b69-fa62-4216-a52e-b63fcb44f5e7", "created_at": "2025-05-22T18:20:45.598943+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/08c40b69-fa62-4216-a52e-b63fcb44f5e7", "rel": "self"}, {"href": "http://localhost/allocations/08c40b69-fa62-4216-a52e-b63fcb44f5e7", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1629553c-ced7-40f7-8dd5-ec3f542f276d", "created_at": "2025-05-22T18:20:45.598010+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/1629553c-ced7-40f7-8dd5-ec3f542f276d", "rel": "self"}, {"href": "http://localhost/allocations/1629553c-ced7-40f7-8dd5-ec3f542f276d", "rel": "bookmark"}], "node_uuid": null}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.120283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e32829d1-21fa-4335-bbc2-7188609d6af5 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-367a4f4e-4f12-418e-bea6-237a8fb0cc74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e32829d1-21fa-4335-bbc2-7188609d6af5", "created_at": "2025-05-22T18:20:45.529924+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e32829d1-21fa-4335-bbc2-7188609d6af5", "rel": "self"}, {"href": "http://localhost/deploy_templates/e32829d1-21fa-4335-bbc2-7188609d6af5", "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}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.116245s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e77dc02-5a0a-407a-8a21-07bdb88d4c72 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-22T18:20:45.602341+00:00", "updated_at": "2025-05-22T18:20:45.599049+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_allocation.TestListAllocations.test_sort_key_invalid [0.045200s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8ba7c058-5924-4dfa-adde-3a369ae2834e X-Openstack-Ironic-Api-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-b971db79-5659-40c2-85bd-bae70d595eaf X-Openstack-Ironic-Api-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-a6933a5a-eed1-4a7e-b20e-ab97d32ae741 X-Openstack-Ironic-Api-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-f71fa6f0-36c1-4158-a42a-fed4091cb08c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.105116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/dd02c609-696e-4213-9a86-5deff9564c1d WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-6b590fb1-72e2-4e55-b9ac-3b07b1320134 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_deploy_template.TestListDeployTemplates.test_collection_links [0.057661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3f0e7ff0-6f97-4928-abd3-7d4eafef4808 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": "3ffbdb10-62cb-4a4d-96b5-b7405824b58c", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/3ffbdb10-62cb-4a4d-96b5-b7405824b58c", "rel": "self"}, {"href": "http://localhost/deploy_templates/3ffbdb10-62cb-4a4d-96b5-b7405824b58c", "rel": "bookmark"}]}, {"uuid": "ae3592b0-97c2-4be1-9df7-27ecef2d46f5", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/ae3592b0-97c2-4be1-9df7-27ecef2d46f5", "rel": "self"}, {"href": "http://localhost/deploy_templates/ae3592b0-97c2-4be1-9df7-27ecef2d46f5", "rel": "bookmark"}]}, {"uuid": "4187b847-1b7b-4470-bd39-c65d5ffbb5fb", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/4187b847-1b7b-4470-bd39-c65d5ffbb5fb", "rel": "self"}, {"href": "http://localhost/deploy_templates/4187b847-1b7b-4470-bd39-c65d5ffbb5fb", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=4187b847-1b7b-4470-bd39-c65d5ffbb5fb"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_old_heartbeat [0.114266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19e4c7d1-b543-4928-9ad4-c342c331e3d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2000-01-01T00:00:00+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": false} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.116967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/2ac0c619-b5d9-423f-bf9f-0c7f23467657 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-04c27ecd-f148-4d5d-8c24-037f2a8ee73b X-Openstack-Ironic-Api-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_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.047450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b94c14fb-9288-4511-ab87-5d13c17df1d3 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": "66d9b892-c9c2-4497-91b5-08ffef0c880e", "links": [{"href": "http://localhost/v1/deploy_templates/66d9b892-c9c2-4497-91b5-08ffef0c880e", "rel": "self"}, {"href": "http://localhost/deploy_templates/66d9b892-c9c2-4497-91b5-08ffef0c880e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "fef72749-7a8f-49d2-b1e3-f4f3c4bc50db", "links": [{"href": "http://localhost/v1/deploy_templates/fef72749-7a8f-49d2-b1e3-f4f3c4bc50db", "rel": "self"}, {"href": "http://localhost/deploy_templates/fef72749-7a8f-49d2-b1e3-f4f3c4bc50db", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "80989f0f-9f17-4069-909b-c1534f6dba79", "links": [{"href": "http://localhost/v1/deploy_templates/80989f0f-9f17-4069-909b-c1534f6dba79", "rel": "self"}, {"href": "http://localhost/deploy_templates/80989f0f-9f17-4069-909b-c1534f6dba79", "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=80989f0f-9f17-4069-909b-c1534f6dba79"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.041602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6106d64b-aff3-4c0a-8662-2e0defcd96f4 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": "3fcffb40-9c88-4875-96be-13571497ed84", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/3fcffb40-9c88-4875-96be-13571497ed84", "rel": "self"}, {"href": "http://localhost/deploy_templates/3fcffb40-9c88-4875-96be-13571497ed84", "rel": "bookmark"}]}, {"uuid": "f9df1ed8-f09d-4954-bd8a-7db5079d8199", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/f9df1ed8-f09d-4954-bd8a-7db5079d8199", "rel": "self"}, {"href": "http://localhost/deploy_templates/f9df1ed8-f09d-4954-bd8a-7db5079d8199", "rel": "bookmark"}]}, {"uuid": "39fbc733-8146-4225-9bfa-6d3e4a30970b", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/39fbc733-8146-4225-9bfa-6d3e4a30970b", "rel": "self"}, {"href": "http://localhost/deploy_templates/39fbc733-8146-4225-9bfa-6d3e4a30970b", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=39fbc733-8146-4225-9bfa-6d3e4a30970b"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found [0.118002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/a6be9228-34a5-4475-aadf-a72fee423a6c WITH [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49961190-6e81-4aec-a8b4-2b19ed24c5e2 X-Openstack-Ironic-Api-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 a6be9228-34a5-4475-aadf-a72fee423a6c could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.113737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e9de7677-770a-46de-83f3-3f36ad4e03fa 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-0a5c9b12-a87d-4588-8795-a587017a35e7 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_unregistered [0.132744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da3bd362-9dca-4545-92fd-3c3547deffd4 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-22T18:20:45.841343+00:00", "updated_at": "2025-05-22T18:20:45.846909+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": false} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.058325s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/d905bfd4-0384-4e39-8434-df795d5ca5cd WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ff96cfb9-f5a8-4c08-b6bd-4c7396f68be9 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable [0.133217s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/958e0d8d-4fc3-4ce5-a6c0-89ae46cc5888 WITH [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ae6ccc3e-0e52-4a2d-a036-edd96f7dc461 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.070507s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/437cdfcc-28ca-4d37-a425-d5f196a7069f WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ea7571a-aea9-4d29-8837-faf0a1c24607 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "437cdfcc-28ca-4d37-a425-d5f196a7069f", "created_at": "2025-05-22T18:20:45.952631+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/437cdfcc-28ca-4d37-a425-d5f196a7069f", "rel": "self"}, {"href": "http://localhost/deploy_templates/437cdfcc-28ca-4d37-a425-d5f196a7069f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.113809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7a7b91b-03df-4121-b2ea-8d68c208d0ea 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} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name [0.074964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/d2866b13-40b9-42d8-b02f-485084a57b16 WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-95eecd32-422f-4aeb-9904-f3eeacd8aea8 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api [0.100800s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-beb4353b-560e-4ca8-bcbb-6e5b786c51d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query [0.291216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1269c82a-7b0a-4d7a-b985-0c4b36e246f0 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": "e615da57-8f66-499e-8230-400e2bb9edd1", "created_at": "2025-05-22T18:20:46.085022+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e615da57-8f66-499e-8230-400e2bb9edd1", "rel": "self"}, {"href": "http://localhost/deploy_templates/e615da57-8f66-499e-8230-400e2bb9edd1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.070910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/c2d14998-d22b-499c-8ac0-c53e29898bdd WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-da282d29-cbee-4bc3-80fb-b6161030941d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.046757s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-877cc244-b9e9-4b7b-a983-bfab1c859ed8 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": "f4a9e665-885e-44cf-9110-28d80d00eb33", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/f4a9e665-885e-44cf-9110-28d80d00eb33", "rel": "self"}, {"href": "http://localhost/deploy_templates/f4a9e665-885e-44cf-9110-28d80d00eb33", "rel": "bookmark"}]}]} GET /v1/deploy_templates?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff8fd3fb-b27e-4dd1-964b-af7a8444d2c3 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": "f4a9e665-885e-44cf-9110-28d80d00eb33", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/f4a9e665-885e-44cf-9110-28d80d00eb33", "rel": "self"}, {"href": "http://localhost/deploy_templates/f4a9e665-885e-44cf-9110-28d80d00eb33", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill [0.212665s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f8b63267-a7fe-4954-97df-d931e8e37121', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/f8b63267-a7fe-4954-97df-d931e8e37121 Openstack-Request-Id: req-3eee50be-5893-4d1f-b9ff-bf1feedb0a31 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f8b63267-a7fe-4954-97df-d931e8e37121", "created_at": "2025-05-22T18:20:46.109526+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/f8b63267-a7fe-4954-97df-d931e8e37121", "rel": "self"}, {"href": "http://localhost/allocations/f8b63267-a7fe-4954-97df-d931e8e37121", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/f8b63267-a7fe-4954-97df-d931e8e37121 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4406b9ad-2b47-41f7-a2a7-409fa61c6ad0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f8b63267-a7fe-4954-97df-d931e8e37121", "created_at": "2025-05-22T18:20:46.109526+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/f8b63267-a7fe-4954-97df-d931e8e37121", "rel": "self"}, {"href": "http://localhost/allocations/f8b63267-a7fe-4954-97df-d931e8e37121", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.047888s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/2fb8ee1c-a7c1-44ba-b871-304ae093480e WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c833c001-e605-4928-abf7-7a637efc8f9b X-Openstack-Ironic-Api-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 non-existent object '1'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_port_and_v6 [0.118823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/[::1]:8090 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-afe4be0d-be66-4275-9331-2c3c7add8f38 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-22T18:20:46.182034+00:00", "updated_at": "2025-05-22T18:20:46.181689+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_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.064890s] ... 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-49576599-eebb-4cbd-b756-ac5ae068017b 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": "9f5357ab-eae9-429a-b3d1-fe5d82eb8c4e", "created_at": "2025-05-22T18:20:46.199361+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9f5357ab-eae9-429a-b3d1-fe5d82eb8c4e", "rel": "self"}, {"href": "http://localhost/deploy_templates/9f5357ab-eae9-429a-b3d1-fe5d82eb8c4e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "da890905-98c0-48fe-a82d-104fe83c20fd", "created_at": "2025-05-22T18:20:46.197666+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/da890905-98c0-48fe-a82d-104fe83c20fd", "rel": "self"}, {"href": "http://localhost/deploy_templates/da890905-98c0-48fe-a82d-104fe83c20fd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "a4a6090c-f580-40b6-a26f-852e1c53ee52", "created_at": "2025-05-22T18:20:46.188107+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a4a6090c-f580-40b6-a26f-852e1c53ee52", "rel": "self"}, {"href": "http://localhost/deploy_templates/a4a6090c-f580-40b6-a26f-852e1c53ee52", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.058284s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/3deb02b2-0ac1-43aa-a864-352ab7658176 WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9ae906fd-f18f-47d5-a148-277189187a54 X-Openstack-Ironic-Api-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 non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.048413s] ... 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-edf2f4a9-35ac-4ccc-b108-6cf476c85d53 X-Openstack-Ironic-Api-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_deploy_template.TestPatch.test_remove_only_step_fail [0.060179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/db6d9797-81ea-4e63-9692-04d8a760b90b WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2bda6479-8b5b-4c48-ba3a-11abfc664be6 X-Openstack-Ironic-Api-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_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.043437s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=False&fields=steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4e9ea6f-a850-46f5-bcc4-f5bbd3247369 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/736c90f8-566c-4a3c-9ddd-9f0bf0e58e0f", "rel": "self"}, {"href": "http://localhost/deploy_templates/736c90f8-566c-4a3c-9ddd-9f0bf0e58e0f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.034864s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-514eb7f4-44a5-47ae-a97e-47685ff408dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": []} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid [0.184288s] ... 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/80ff76e1-db86-48bb-bcb6-d2f58fe393de Openstack-Request-Id: req-df3b7707-2f82-4b40-8269-6d2c671ac1ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "80ff76e1-db86-48bb-bcb6-d2f58fe393de", "created_at": "2025-05-22T18:20:46.296082+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/80ff76e1-db86-48bb-bcb6-d2f58fe393de", "rel": "self"}, {"href": "http://localhost/allocations/80ff76e1-db86-48bb-bcb6-d2f58fe393de", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/80ff76e1-db86-48bb-bcb6-d2f58fe393de WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c84e19d-6aa5-47cd-b6ba-978f25a0f106 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "80ff76e1-db86-48bb-bcb6-d2f58fe393de", "created_at": "2025-05-22T18:20:46.296082+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/80ff76e1-db86-48bb-bcb6-d2f58fe393de", "rel": "self"}, {"href": "http://localhost/allocations/80ff76e1-db86-48bb-bcb6-d2f58fe393de", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links [0.141033s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fc40d1c-df6c-472b-8a28-c54a391e87b3 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-22T18:20:46.300805+00:00", "updated_at": "2025-05-22T18:20:46.290480+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-1be85d7b-dc87-4611-97d9-2b508097420a 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-22T18:20:46.300805+00:00", "updated_at": "2025-05-22T18:20:46.290480+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-ec302fe0-e880-44b7-85da-1c9d14fd3c36 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-22T18:20:46.300805+00:00", "updated_at": "2025-05-22T18:20:46.290480+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.064993s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/3c83ed45-77cf-4e25-a654-c55dcb2b6a19 WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a48475e-3e9f-4f77-a980-7b866d329eda X-Openstack-Ironic-Api-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_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.056219s] ... 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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.091667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f8cbf19-445b-4f5f-be05-76fc9f155fce 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-22T18:20:46.416342+00:00", "updated_at": "2025-05-22T18:20:46.416077+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-d8aa8740-f544-4f07-bb69-b466677529a8 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-22T18:20:46.416342+00:00", "updated_at": "2025-05-22T18:20:46.416077+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-ed9f9546-2b50-4316-a1b4-c74f8654fc74 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-22T18:20:46.416342+00:00", "updated_at": "2025-05-22T18:20:46.416077+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} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid [0.082645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f9f6bc18-3329-404e-b89f-7497f8bc2d8a WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9841cd3e-3c5c-47fd-94e3-082dbdf9c5e5 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found [0.115238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd2cfa8e0-ae9d-4eef-8a74-ee2a572154dc', 'owner': None, 'node': 'a5916e29-079e-4096-b1fc-cc5b32e2c304'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f4e59ca-b719-4705-b60a-eb9a43308871 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node a5916e29-079e-4096-b1fc-cc5b32e2c304 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.062088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff2ce0e9-dd2e-4789-a391-93fa1a4351da 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": "e8bb1198-325d-4dd2-8f84-2d5cde0d556f", "links": [{"href": "http://localhost/v1/deploy_templates/e8bb1198-325d-4dd2-8f84-2d5cde0d556f", "rel": "self"}, {"href": "http://localhost/deploy_templates/e8bb1198-325d-4dd2-8f84-2d5cde0d556f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "8fcbd713-a37f-4078-8dcc-260a36b8ca7d", "links": [{"href": "http://localhost/v1/deploy_templates/8fcbd713-a37f-4078-8dcc-260a36b8ca7d", "rel": "self"}, {"href": "http://localhost/deploy_templates/8fcbd713-a37f-4078-8dcc-260a36b8ca7d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "46fecbfc-fc64-4c11-be0b-5894814068a4", "links": [{"href": "http://localhost/v1/deploy_templates/46fecbfc-fc64-4c11-be0b-5894814068a4", "rel": "self"}, {"href": "http://localhost/deploy_templates/46fecbfc-fc64-4c11-be0b-5894814068a4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.049581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24b575bc-831d-43f4-9763-9b64f9a9548d 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/5c19b5e6-1b65-4f88-94d5-ab983b41fa1c", "rel": "self"}, {"href": "http://localhost/deploy_templates/5c19b5e6-1b65-4f88-94d5-ab983b41fa1c", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/7c512318-866a-4b70-b295-00bd4cd8c113", "rel": "self"}, {"href": "http://localhost/deploy_templates/7c512318-866a-4b70-b295-00bd4cd8c113", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=7c512318-866a-4b70-b295-00bd4cd8c113"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.129357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/9335333c-cdd8-4d1a-adbe-734cdb9f7d5d 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-740f01e4-bb4d-4e06-9794-1a309935e362 X-Openstack-Ironic-Api-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_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.076255s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/22f58825-d395-4b05-bb85-34e68ff7afcd?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c15c1d6a-9c75-46c9-b4bf-2063a5a33dd3 X-Openstack-Ironic-Api-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_allocation.TestPost.test_backfill_not_allowed [0.142667s] ... 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-c01b05e6-30ea-4b9d-998e-b2924dc9fde7 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_deploy_template.TestListDeployTemplates.test_get_one [0.053238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/6a4f11e5-7dc6-4a57-9618-d01e6f8c98c0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aea8ce3e-f30d-431e-b6b9-5807541bca25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6a4f11e5-7dc6-4a57-9618-d01e6f8c98c0", "created_at": "2025-05-22T18:20:46.632613+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6a4f11e5-7dc6-4a57-9618-d01e6f8c98c0", "rel": "self"}, {"href": "http://localhost/deploy_templates/6a4f11e5-7dc6-4a57-9618-d01e6f8c98c0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.039448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/11ac2ecf-1e02-462a-965d-e4b6ad492bbe?fields=name,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e002033-8fc0-4093-9ee6-a709fa22505e 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/11ac2ecf-1e02-462a-965d-e4b6ad492bbe", "rel": "self"}, {"href": "http://localhost/deploy_templates/11ac2ecf-1e02-462a-965d-e4b6ad492bbe", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.108789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0e54633c-defb-4400-8d64-e9c0748b2c64 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-97f745a8-f157-49af-9ceb-fec2b8fc51c7 X-Openstack-Ironic-Api-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_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.035905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/e70358ad-7119-440e-a553-bb7eeaec0f9e 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_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.050335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/53d613e7-d4b6-4689-b931-cdbde0506a85.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e981bef-4e02-4d8f-92fc-b4c65b63499c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "53d613e7-d4b6-4689-b931-cdbde0506a85", "created_at": "2025-05-22T18:20:46.768941+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/53d613e7-d4b6-4689-b931-cdbde0506a85", "rel": "self"}, {"href": "http://localhost/deploy_templates/53d613e7-d4b6-4689-b931-cdbde0506a85", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name [0.191164s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '71b7baf9-e169-45c1-a3f9-4a173f1f8640', 'owner': None, 'node': 'backfill-me'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/71b7baf9-e169-45c1-a3f9-4a173f1f8640 Openstack-Request-Id: req-935875fe-5665-4061-9cca-d3a65254f60a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "71b7baf9-e169-45c1-a3f9-4a173f1f8640", "created_at": "2025-05-22T18:20:46.756127+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/71b7baf9-e169-45c1-a3f9-4a173f1f8640", "rel": "self"}, {"href": "http://localhost/allocations/71b7baf9-e169-45c1-a3f9-4a173f1f8640", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/71b7baf9-e169-45c1-a3f9-4a173f1f8640 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6f024d66-183e-47f2-9aed-ecdd1bd994fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "71b7baf9-e169-45c1-a3f9-4a173f1f8640", "created_at": "2025-05-22T18:20:46.756127+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/71b7baf9-e169-45c1-a3f9-4a173f1f8640", "rel": "self"}, {"href": "http://localhost/allocations/71b7baf9-e169-45c1-a3f9-4a173f1f8640", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none [0.118650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e3ba0241-989f-47de-8d22-f6a367694e92 WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ec8c6fa2-b7af-41b7-9a2c-c8c10e1e4349 X-Openstack-Ironic-Api-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_deploy_template.TestListDeployTemplates.test_get_one_with_json_not_found [0.041760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/1ae80ffb-c319-41c1-9b18-5f51498ffad1.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-915efe99-db87-42fb-8e5b-567471fd661a X-Openstack-Ironic-Api-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 1ae80ffb-c319-41c1-9b18-5f51498ffad1.json could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.034929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/2423884f-bb38-47ce-a968-08cfcf45e110 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0af4f711-4d76-4d7d-8c92-fc99183e12dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2423884f-bb38-47ce-a968-08cfcf45e110", "created_at": "2025-05-22T18:20:46.847136+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2423884f-bb38-47ce-a968-08cfcf45e110", "rel": "self"}, {"href": "http://localhost/deploy_templates/2423884f-bb38-47ce-a968-08cfcf45e110", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.056279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/53cae12c-0773-4259-872b-50430be7851f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d880529b-9477-489f-a811-9618b51351e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "53cae12c-0773-4259-872b-50430be7851f", "created_at": "2025-05-22T18:20:46.882801+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/53cae12c-0773-4259-872b-50430be7851f", "rel": "self"}, {"href": "http://localhost/deploy_templates/53cae12c-0773-4259-872b-50430be7851f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/53cae12c-0773-4259-872b-50430be7851f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8a1d152-b71b-4862-91b2-36f48ffffa7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "53cae12c-0773-4259-872b-50430be7851f", "created_at": "2025-05-22T18:20:46.882801+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/53cae12c-0773-4259-872b-50430be7851f", "rel": "self"}, {"href": "http://localhost/deploy_templates/53cae12c-0773-4259-872b-50430be7851f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /deploy_templates/53cae12c-0773-4259-872b-50430be7851f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-963f430b-dff8-48c0-8ad0-59fbeb7a953b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "53cae12c-0773-4259-872b-50430be7851f", "created_at": "2025-05-22T18:20:46.882801+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/53cae12c-0773-4259-872b-50430be7851f", "rel": "self"}, {"href": "http://localhost/deploy_templates/53cae12c-0773-4259-872b-50430be7851f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.496555s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef72b396-4db5-4c44-aef4-732fe8bcc3b1 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}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.125612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/76baf7f2-461e-4ea5-bc88-f685748ef562 WITH [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-91503836-501c-4361-9331-cac04a9f9642 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'not-a-trait' is not valid under any of the given schemas. Possible root cause: 'not-a-trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.061539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb43fab2-b95a-4821-833a-5a31143a4e04 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": "ca3317c7-b826-4533-b889-28b4e2038440", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/ca3317c7-b826-4533-b889-28b4e2038440", "rel": "self"}, {"href": "http://localhost/deploy_templates/ca3317c7-b826-4533-b889-28b4e2038440", "rel": "bookmark"}]}, {"uuid": "15c8086c-1a55-4bad-8a04-f7a84e2243b7", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/15c8086c-1a55-4bad-8a04-f7a84e2243b7", "rel": "self"}, {"href": "http://localhost/deploy_templates/15c8086c-1a55-4bad-8a04-f7a84e2243b7", "rel": "bookmark"}]}, {"uuid": "21bff253-5f66-4ef1-821d-9eaf5a010af1", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/21bff253-5f66-4ef1-821d-9eaf5a010af1", "rel": "self"}, {"href": "http://localhost/deploy_templates/21bff253-5f66-4ef1-821d-9eaf5a010af1", "rel": "bookmark"}]}, {"uuid": "b8e9a60f-923c-445b-8c0b-0b59c86ced16", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/b8e9a60f-923c-445b-8c0b-0b59c86ced16", "rel": "self"}, {"href": "http://localhost/deploy_templates/b8e9a60f-923c-445b-8c0b-0b59c86ced16", "rel": "bookmark"}]}, {"uuid": "fafc3810-4615-4f4e-942a-efa7d4e0d9d2", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/deploy_templates/fafc3810-4615-4f4e-942a-efa7d4e0d9d2", "rel": "self"}, {"href": "http://localhost/deploy_templates/fafc3810-4615-4f4e-942a-efa7d4e0d9d2", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class [0.203309s] ... 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/15f8c752-8879-46f1-b0c1-51a974265891 Openstack-Request-Id: req-05f16598-15d7-4db5-88bc-7bdea2f3f274 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "15f8c752-8879-46f1-b0c1-51a974265891", "created_at": "2025-05-22T18:20:46.945701+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/15f8c752-8879-46f1-b0c1-51a974265891", "rel": "self"}, {"href": "http://localhost/allocations/15f8c752-8879-46f1-b0c1-51a974265891", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/15f8c752-8879-46f1-b0c1-51a974265891 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40d58df4-4bcc-4e00-b543-d8325d8a1188 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "15f8c752-8879-46f1-b0c1-51a974265891", "created_at": "2025-05-22T18:20:46.945701+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/15f8c752-8879-46f1-b0c1-51a974265891", "rel": "self"}, {"href": "http://localhost/allocations/15f8c752-8879-46f1-b0c1-51a974265891", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.041276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a028d0e4-f39b-4db8-b556-a3bfd11a4b67 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": "f22d0d13-f0ed-45bf-8877-9daf4caeab4c", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/f22d0d13-f0ed-45bf-8877-9daf4caeab4c", "rel": "self"}, {"href": "http://localhost/deploy_templates/f22d0d13-f0ed-45bf-8877-9daf4caeab4c", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail [0.088110s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a2b3f15-7f04-4d05-a5f2-4dca8a92a662 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-22T18:20:47.018362+00:00", "updated_at": "2025-05-22T18:20:47.018070+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-22T18:20:47.020752+00:00", "updated_at": "2025-05-22T18:20:47.020570+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_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.105099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/79ff6a0d-34ef-46af-b3b8-33cc4dec20f4 WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3fa7b29e-875f-42f4-8653-e507023a5a0d X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.082648s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/986dd7e5-62e0-4c10-942e-3997679670f7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3646210-6b03-494a-82e5-f503e578c84a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "986dd7e5-62e0-4c10-942e-3997679670f7", "created_at": "2025-05-22T18:20:47.078397+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/986dd7e5-62e0-4c10-942e-3997679670f7", "rel": "self"}, {"href": "http://localhost/deploy_templates/986dd7e5-62e0-4c10-942e-3997679670f7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.070208s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8671d8ca-9de3-4de1-b2b7-dfc09dca7cd0 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.TestPost.test_create_allocation [0.137958s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f7e5501f-2b47-477d-a5c8-4e4cefdde285', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/f7e5501f-2b47-477d-a5c8-4e4cefdde285 Openstack-Request-Id: req-f8327b92-e46f-4435-bc7b-1e245ea763e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f7e5501f-2b47-477d-a5c8-4e4cefdde285", "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/f7e5501f-2b47-477d-a5c8-4e4cefdde285", "rel": "self"}, {"href": "http://localhost/allocations/f7e5501f-2b47-477d-a5c8-4e4cefdde285", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/f7e5501f-2b47-477d-a5c8-4e4cefdde285 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41e99afc-7152-4291-a40e-5c0fadaeae69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f7e5501f-2b47-477d-a5c8-4e4cefdde285", "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/f7e5501f-2b47-477d-a5c8-4e4cefdde285", "rel": "self"}, {"href": "http://localhost/allocations/f7e5501f-2b47-477d-a5c8-4e4cefdde285", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.090836s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/56bb77e8-47c2-44eb-a7b1-47631d54ee38 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-19af2216-3136-4e51-aab3-4122efb98023 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.047442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed90b5b5-932b-42ff-a14e-91509f0932b7 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": "31107cc0-1e7d-4172-b5f0-7e757df7d428", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/31107cc0-1e7d-4172-b5f0-7e757df7d428", "rel": "self"}, {"href": "http://localhost/deploy_templates/31107cc0-1e7d-4172-b5f0-7e757df7d428", "rel": "bookmark"}]}, {"uuid": "488d2236-c89c-42a1-bad3-2e14ec8a9be7", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/488d2236-c89c-42a1-bad3-2e14ec8a9be7", "rel": "self"}, {"href": "http://localhost/deploy_templates/488d2236-c89c-42a1-bad3-2e14ec8a9be7", "rel": "bookmark"}]}, {"uuid": "bd248cd8-829f-45e3-bce7-63d321958362", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/bd248cd8-829f-45e3-bce7-63d321958362", "rel": "self"}, {"href": "http://localhost/deploy_templates/bd248cd8-829f-45e3-bce7-63d321958362", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.086531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=hostname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4a53de7-65f6-4c6b-ad05-1ae71ec22256 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": "0706760c-19ea-452f-875b-a13c497f6480", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/0706760c-19ea-452f-875b-a13c497f6480", "rel": "self"}, {"href": "http://localhost/conductors/0706760c-19ea-452f-875b-a13c497f6480", "rel": "bookmark"}], "alive": true}, {"hostname": "22c2c282-94ca-472f-876e-46871da34029", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/22c2c282-94ca-472f-876e-46871da34029", "rel": "self"}, {"href": "http://localhost/conductors/22c2c282-94ca-472f-876e-46871da34029", "rel": "bookmark"}], "alive": true}, {"hostname": "28e8fba5-e3fc-4168-a684-d4e3ed425d44", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/28e8fba5-e3fc-4168-a684-d4e3ed425d44", "rel": "self"}, {"href": "http://localhost/conductors/28e8fba5-e3fc-4168-a684-d4e3ed425d44", "rel": "bookmark"}], "alive": true}, {"hostname": "33eac28e-0969-4ed4-8d82-1a942d493e2e", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/33eac28e-0969-4ed4-8d82-1a942d493e2e", "rel": "self"}, {"href": "http://localhost/conductors/33eac28e-0969-4ed4-8d82-1a942d493e2e", "rel": "bookmark"}], "alive": true}, {"hostname": "7429d46f-2821-47b1-9ac6-b7bed4d56af7", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/7429d46f-2821-47b1-9ac6-b7bed4d56af7", "rel": "self"}, {"href": "http://localhost/conductors/7429d46f-2821-47b1-9ac6-b7bed4d56af7", "rel": "bookmark"}], "alive": true}]} {2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.058526s] ... 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-2006d174-b6b0-488b-8194-315a09bc4b65 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": "aabd60c9-4f62-4ee4-a69c-f3bc959f80e8", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/aabd60c9-4f62-4ee4-a69c-f3bc959f80e8", "rel": "self"}, {"href": "http://localhost/deploy_templates/aabd60c9-4f62-4ee4-a69c-f3bc959f80e8", "rel": "bookmark"}]}, {"uuid": "eedaca31-7c9b-4d72-bed7-48ef62e7fbe9", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/eedaca31-7c9b-4d72-bed7-48ef62e7fbe9", "rel": "self"}, {"href": "http://localhost/deploy_templates/eedaca31-7c9b-4d72-bed7-48ef62e7fbe9", "rel": "bookmark"}]}, {"uuid": "7957487b-2a6d-4518-ab9d-422b827dd5b4", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/7957487b-2a6d-4518-ab9d-422b827dd5b4", "rel": "self"}, {"href": "http://localhost/deploy_templates/7957487b-2a6d-4518-ab9d-422b827dd5b4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.122665s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ab23a734-c300-49c3-860a-35e6b0ad6b81', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ef76537f-0b27-407e-af1a-7b701a15373e X-Openstack-Ironic-Api-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_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.060305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5e002eb3-c2d8-4cf6-bd78-25d5449fd1df X-Openstack-Ironic-Api-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-7cb13b8c-2d89-468d-b3e7-a53e7c2cd694 X-Openstack-Ironic-Api-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-f15af044-3b5b-47f0-9abe-4d61a47beda7 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.085515s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=alive WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a4cda1f8-bf1d-43ab-8960-d57869e89b29 X-Openstack-Ironic-Api-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-3b152855-ad15-4981-83f9-9cc6f6c9f063 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [0.148320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0ae460f0-c541-4f41-824d-ee721c8e64a9 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-d7259a4f-8b4f-4a92-b927-6825e46a4bbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0ae460f0-c541-4f41-824d-ee721c8e64a9", "created_at": "2025-05-22T18:20:47.215187+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0ae460f0-c541-4f41-824d-ee721c8e64a9", "rel": "self"}, {"href": "http://localhost/deploy_templates/0ae460f0-c541-4f41-824d-ee721c8e64a9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 11}]} {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field [0.039312s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type [0.027404s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event [0.025911s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule [0.105550s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '1760ebf4-875a-46df-9b6b-719f5014fa20', '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/1760ebf4-875a-46df-9b6b-719f5014fa20 Openstack-Request-Id: req-b2f3c5ce-f2dd-4a3f-a9c5-c63a4db3ee91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1760ebf4-875a-46df-9b6b-719f5014fa20", "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/1760ebf4-875a-46df-9b6b-719f5014fa20", "rel": "self"}, {"href": "http://localhost/inspection/1760ebf4-875a-46df-9b6b-719f5014fa20", "rel": "bookmark"}]} GET /v1/inspection_rules/1760ebf4-875a-46df-9b6b-719f5014fa20 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-509815ae-77f8-4bb7-9cff-7859cb76adb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1760ebf4-875a-46df-9b6b-719f5014fa20", "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/1760ebf4-875a-46df-9b6b-719f5014fa20", "rel": "self"}, {"href": "http://localhost/inspection/1760ebf4-875a-46df-9b6b-719f5014fa20", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.131606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '6f0ea75d-e93f-4f1a-83fb-390b75df09da', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-056ae666-aaab-43ce-a2c1-73a55893bbca X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event [0.036603s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type [0.034689s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist [0.149959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/4774cc0a-cd11-4e92-bef0-df2e9328e4c8 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-be152002-449b-4e0d-9871-81726d6d615c X-Openstack-Ironic-Api-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 4774cc0a-cd11-4e92-bef0-df2e9328e4c8 already exists.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.039665s] ... 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-3d85c589-3764-40ff-9d9e-1ec5e2744268 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.TestPost.test_events_does_not_contain_event [0.032671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-92ed5d6e-f026-4e02-be58-4c49e1c3bfee X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_generate_uuid [0.125755s] ... 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/77a644d2-bd29-4aa9-bd4e-70e8507c0a44 Openstack-Request-Id: req-0baa4173-d4dc-4d30-83c8-61b1b77b2ddf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "77a644d2-bd29-4aa9-bd4e-70e8507c0a44", "created_at": "2025-05-22T18:20:47.495440+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/77a644d2-bd29-4aa9-bd4e-70e8507c0a44", "rel": "self"}, {"href": "http://localhost/inspection/77a644d2-bd29-4aa9-bd4e-70e8507c0a44", "rel": "bookmark"}]} GET /v1/inspection_rules/77a644d2-bd29-4aa9-bd4e-70e8507c0a44 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7a6f9eb-a9a5-4213-8029-fb607c7326d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "77a644d2-bd29-4aa9-bd4e-70e8507c0a44", "created_at": "2025-05-22T18:20:47.495440+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/77a644d2-bd29-4aa9-bd4e-70e8507c0a44", "rel": "self"}, {"href": "http://localhost/inspection/77a644d2-bd29-4aa9-bd4e-70e8507c0a44", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.136023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8473a4f3-c6fc-4e36-abda-6f86c37cec0e', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/8473a4f3-c6fc-4e36-abda-6f86c37cec0e Openstack-Request-Id: req-aef7909b-2b39-4ae7-9f9e-6a2731b19c67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8473a4f3-c6fc-4e36-abda-6f86c37cec0e", "created_at": "2025-05-22T18:20:47.495306+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/8473a4f3-c6fc-4e36-abda-6f86c37cec0e", "rel": "self"}, {"href": "http://localhost/allocations/8473a4f3-c6fc-4e36-abda-6f86c37cec0e", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/8473a4f3-c6fc-4e36-abda-6f86c37cec0e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8acbb1da-381c-4966-8871-f7c25068d9fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8473a4f3-c6fc-4e36-abda-6f86c37cec0e", "created_at": "2025-05-22T18:20:47.495306+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/8473a4f3-c6fc-4e36-abda-6f86c37cec0e", "rel": "self"}, {"href": "http://localhost/allocations/8473a4f3-c6fc-4e36-abda-6f86c37cec0e", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.038294s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-501efee4-93a2-4b08-bfc8-623d9abc1815 X-Openstack-Ironic-Api-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_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.124796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/77cb5329-2d69-48a1-9bd7-956727902c8f 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-3c475924-34a4-4eb8-9909-9cec4b2ae5d1 X-Openstack-Ironic-Api-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: list assignment index out of range\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.044646s] ... 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-6b37239c-12b3-43a1-825a-ef109f479022 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_with_optional_args [0.127353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'ce0c807b-caf0-45e1-adb4-78ef0608ba36', '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/ce0c807b-caf0-45e1-adb4-78ef0608ba36 Openstack-Request-Id: req-0ec1b798-8849-4d76-8fef-5cc3a211e020 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ce0c807b-caf0-45e1-adb4-78ef0608ba36", "created_at": "2025-05-22T18:20:47.630124+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/ce0c807b-caf0-45e1-adb4-78ef0608ba36", "rel": "self"}, {"href": "http://localhost/inspection/ce0c807b-caf0-45e1-adb4-78ef0608ba36", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.114966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3424b8b4-58b3-42bf-9b5d-d84979bb1f48', 'owner': None} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8924b59f-2290-4b2e-b364-00b3eee30513 X-Openstack-Ironic-Api-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_event.TestPost.test_multiple_events [0.044957s] ... 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-f9a3417d-68c9-477d-9abe-c3690f4f7cd3 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.TestPost.test_network_bind_port_events [0.044853s] ... 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-5a384611-36b0-4c38-9a41-8d115c00b29d 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_deploy_template.TestPatch.test_replace_step_invalid_interface [0.135482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/5ed30fb3-70ad-40c7-9578-196119e75a4f WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dbb320e3-042c-4b46-909f-f90c59eb0060 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.039037s] ... 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-83a2a314-7d31-4f46-a0ce-41e29391d2b6 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.TestAttachDetachVif.test_vif_attach [0.101816s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '38ef08f7-fd3b-4eb8-8320-06a2c6355d14'} GOT Response: 204 No Content Openstack-Request-Id: req-0a25012b-5519-4169-8e19-742d7a807c83 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_event.TestPost.test_network_port_event_invalid_binding_host_id [0.039150s] ... 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-f27f0701-e6e7-4ad7-9cda-0d134ae91a59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid [0.153536s] ... 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/b4bb4f9d-39dd-440d-b7ee-bd613e7b97ff Openstack-Request-Id: req-9dfadd8f-25f7-4cf7-8a7f-a031488e6e79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b4bb4f9d-39dd-440d-b7ee-bd613e7b97ff", "created_at": "2025-05-22T18:20:47.769517+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/b4bb4f9d-39dd-440d-b7ee-bd613e7b97ff", "rel": "self"}, {"href": "http://localhost/allocations/b4bb4f9d-39dd-440d-b7ee-bd613e7b97ff", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/b4bb4f9d-39dd-440d-b7ee-bd613e7b97ff WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a92f335-2e30-40ef-8245-c796b3d2da05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b4bb4f9d-39dd-440d-b7ee-bd613e7b97ff", "created_at": "2025-05-22T18:20:47.769517+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/b4bb4f9d-39dd-440d-b7ee-bd613e7b97ff", "rel": "self"}, {"href": "http://localhost/allocations/b4bb4f9d-39dd-440d-b7ee-bd613e7b97ff", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.048401s] ... 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-7d0e31c3-17d8-4a3d-93b8-0cebf92b6e9e X-Openstack-Ironic-Api-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_deploy_template.TestPatch.test_update_by_id [0.169250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/76714a1c-c9c5-4318-b935-3261ffdf1653 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0dd38427-1026-4cc1-85d4-fb4dc558c63e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "76714a1c-c9c5-4318-b935-3261ffdf1653", "created_at": "2025-05-22T18:20:47.770930+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/76714a1c-c9c5-4318-b935-3261ffdf1653", "rel": "self"}, {"href": "http://localhost/deploy_templates/76714a1c-c9c5-4318-b935-3261ffdf1653", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.045911s] ... 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-3eb3051e-e80c-4cc3-9382-67b3b8cc045f X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.134568s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': 'be318780-b686-42f7-ae01-d89aff6e24fc'} GOT Response: 204 No Content Openstack-Request-Id: req-463364d2-ca30-4048-b14c-fda6addfdbdc 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_allocation.TestPost.test_create_allocation_invalid_api_version [0.089292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c9e5648d-64b3-431c-94b3-6cd272eb0c08', '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_event.TestPost.test_network_port_event_invalid_mac_address [0.041718s] ... 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-7462191d-4ed2-4a28-a58f-503be0e9a161 X-Openstack-Ironic-Api-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_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.093893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/c89af67f-c66b-4693-b96a-f824673d9285 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_event.TestPost.test_network_port_event_invalid_port_id [0.059544s] ... 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-df5d05e3-3286-43be-b206-63c7de325e7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.105659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': '162663a9-d304-43e1-bac5-b3c38fc86fa6'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2674fa65-5c97-4f48-9556-a12e94f6b596 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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.130741s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '509a4617-5c80-4f0a-8c25-55f38b46fe24', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-205cd43f-c939-4463-b162-71964a13fd97 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.073661s] ... 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-bd06a9c2-0927-4dc9-a815-37627d453973 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.115444s] ... 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-8a704d8b-1a76-4c72-b2a2-071052eb0146 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for id: invalid%id^\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.152304s] ... 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-8c6eacfc-2389-4c5b-9354-f1da342bea4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "84ae82c0-0765-4092-ac8b-90b0d7f832d6", "created_at": "2025-05-22T18:20:48.034214+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/84ae82c0-0765-4092-ac8b-90b0d7f832d6", "rel": "self"}, {"href": "http://localhost/deploy_templates/84ae82c0-0765-4092-ac8b-90b0d7f832d6", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.125702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': '04a0f31d-f633-4854-924c-bfae7472f15b', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-141c2124-506a-4227-91c3-821055bf8e81 X-Openstack-Ironic-Api-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_event.TestPost.test_network_unbind_port_events [0.085067s] ... 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-78aa839d-a52d-403e-b117-81901a22d6bf 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.TestPost.test_network_unknown_event_property [0.069768s] ... 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-3c878d9c-5ccc-41af-9ea0-de6e04aca3ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.128086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'bad_id': 'debb8bbd-ca6a-488e-9042-f303d53fc471'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a2621ec7-4c12-40ec-aacb-5193aa0eec21 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_deploy_template.TestPatch.test_update_by_name_old_api_version [0.122945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/CUSTOM_DT1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid [0.125419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '010f58cc-dd7c-490f-92e4-cf062a6aa66b', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2f5e3e17-1568-40f5-8cb6-51e9b55b15bc X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.114095s] ... 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-6c6adf9c-cfa8-4f54-887e-50a2ad02b4e6 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-22T18:20:48.312010+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_node.TestAttachDetachVif.test_vif_attach_node_locked [0.129269s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'f95c142f-9078-4809-b727-23a3bdb543f2'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-dd6e206c-16ca-4cac-9cd8-df75a0a32d8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false [0.048788s] ... 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-e7dba32d-5842-4531-921f-7c43e49a135a 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-22T18:20:48.370991+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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json [0.159541s] ... 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-1a10534f-d85f-4d3c-b8e0-90209e79134f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "738b4c92-56a2-45af-9416-d8297d9fe40a", "created_at": "2025-05-22T18:20:48.315618+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/738b4c92-56a2-45af-9416-d8297d9fe40a", "rel": "self"}, {"href": "http://localhost/deploy_templates/738b4c92-56a2-45af-9416-d8297d9fe40a", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok [0.150104s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': '16681725-2354-41a1-a376-e45583a22bbc', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/16681725-2354-41a1-a376-e45583a22bbc Openstack-Request-Id: req-9b47662e-79c1-48f7-ac70-85a259bd9556 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "16681725-2354-41a1-a376-e45583a22bbc", "created_at": "2025-05-22T18:20:48.397697+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/16681725-2354-41a1-a376-e45583a22bbc", "rel": "self"}, {"href": "http://localhost/allocations/16681725-2354-41a1-a376-e45583a22bbc", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/16681725-2354-41a1-a376-e45583a22bbc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0b0b3cb1-9a2a-4cec-9576-9c00f3b79ff9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "16681725-2354-41a1-a376-e45583a22bbc", "created_at": "2025-05-22T18:20:48.397697+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/16681725-2354-41a1-a376-e45583a22bbc", "rel": "self"}, {"href": "http://localhost/allocations/16681725-2354-41a1-a376-e45583a22bbc", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version [0.064226s] ... 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-8d78f497-e652-43b9-b189-a8d368aeaec2 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.053291s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.159112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/doesntexist/vifs WITH {'id': '8c8f1a6f-975e-4bf8-9d2f-39de1784f616'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4189379d-8358-4738-befe-9298f2faf99b 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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.116886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '84038bb7-1e8b-4623-999b-2907fee41889', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5583062d-84ca-40d5-85f3-3b07d2bf2a98 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail [0.106486s] ... 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-40651076-7ae0-4900-afb1-6525a22d0629 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-22T18:20:48.581070+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_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid [0.112917s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '5d05711e-4900-4356-9650-b245e2771130', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-831ed9c3-c598-415f-96d8-6701ac23e377 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_allocation.TestPost.test_create_allocation_owner [0.140124s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'e1e0ae30-f14e-4ec2-a94b-c17e9e8c570a', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/e1e0ae30-f14e-4ec2-a94b-c17e9e8c570a Openstack-Request-Id: req-c4d91b33-2d94-4b6d-a6ce-f76cb38277e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e1e0ae30-f14e-4ec2-a94b-c17e9e8c570a", "created_at": "2025-05-22T18:20:48.657432+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/e1e0ae30-f14e-4ec2-a94b-c17e9e8c570a", "rel": "self"}, {"href": "http://localhost/allocations/e1e0ae30-f14e-4ec2-a94b-c17e9e8c570a", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e1e0ae30-f14e-4ec2-a94b-c17e9e8c570a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-311c55c6-a521-4681-aace-d75c33f7e9f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e1e0ae30-f14e-4ec2-a94b-c17e9e8c570a", "created_at": "2025-05-22T18:20:48.657432+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/e1e0ae30-f14e-4ec2-a94b-c17e9e8c570a", "rel": "self"}, {"href": "http://localhost/allocations/e1e0ae30-f14e-4ec2-a94b-c17e9e8c570a", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields [0.077672s] ... 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-f23c8490-8364-461b-b9fd-dfd363b38b21 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_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old [0.076243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'd1dfbdea-d256-4841-a980-157043992dd1', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 204 No Content Openstack-Request-Id: req-7f83d7ba-76c8-4ddf-bfe1-f9de8be18c9c 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_node.TestBIOS.test_get_bios_fields [0.065441s] ... 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-74ea2c3b-b9dc-4c7a-854d-8e19ab65482a 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-22T18:20:48.739132+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_node.TestAttachDetachVif.test_vif_detach [0.087409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/93777f32-c353-4ed8-8cf6-1aab511654a6 GOT Response: 204 No Content Openstack-Request-Id: req-25f927b6-6c90-4b87-8924-eb7fc3f70764 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_allocation.TestPost.test_create_allocation_owner_auto_filled [0.153980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fa94cead-e9af-498e-8da3-6f05620552b8', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/fa94cead-e9af-498e-8da3-6f05620552b8 Openstack-Request-Id: req-9e754719-47e8-4856-839c-11041fe96080 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fa94cead-e9af-498e-8da3-6f05620552b8", "created_at": "2025-05-22T18:20:48.808724+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/fa94cead-e9af-498e-8da3-6f05620552b8", "rel": "self"}, {"href": "http://localhost/allocations/fa94cead-e9af-498e-8da3-6f05620552b8", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/fa94cead-e9af-498e-8da3-6f05620552b8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c6b2556-854e-4274-a0e9-f0dec50d93ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fa94cead-e9af-498e-8da3-6f05620552b8", "created_at": "2025-05-22T18:20:48.808724+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/fa94cead-e9af-498e-8da3-6f05620552b8", "rel": "self"}, {"href": "http://localhost/allocations/fa94cead-e9af-498e-8da3-6f05620552b8", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.076873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/vifs/add0f41d-9a24-40a8-814a-824b284af456 GOT Response: 204 No Content Openstack-Request-Id: req-a0e82371-0d95-4074-985f-e2187e1a80c4 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_node.TestBIOS.test_get_bios_fields_old_version [0.115321s] ... 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-8641d2f0-ed01-4581-8a68-e6a1fa21f9fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?fields=['name', 'read_only'] received.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json_not_found [0.508155s] ... 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-9dc675c9-130c-4623-b7af-a0f41a26e8d1 X-Openstack-Ironic-Api-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_node.TestAttachDetachVif.test_vif_detach_node_locked [0.067519s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/e81554d4-96ab-41f1-8776-398073445985 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0acaa84d-af36-40e4-8d0a-c7f70b3d32c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.079520s] ... 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-080aad18-81b8-4a0f-9a17-e64bbe4b1da5 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-22T18:20:48.934967+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.TestPost.test_create_allocation_owner_not_allowed [0.124049s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '08431556-1315-49cb-821c-c1b554f5776f', 'owner': '12345'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-df01a30c-c209-4ebc-a86e-2b92b3df1c0c 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.052257s] ... 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-9351131a-4187-4630-94b7-8d007ad1b8b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name [0.115850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/9814e84b-3bc1-464a-98de-ec6385546615 WITH [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-81ae2378-bf65-44d8-bd8f-286506b44e81 X-Openstack-Ironic-Api-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_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.086905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/doesntexist/vifs/419f07d5-8e60-4d93-b11b-a190b0ae1bb6 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-607fe8b0-e325-46f2-aba6-9463ab10c9c9 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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id [0.128261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '21d8889c-1088-48c0-a961-5762b8a52664', 'owner': '12345'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-640b65b3-2d87-43e8-b2c3-8d5343316491 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list [0.070688s] ... 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-4c48f1e0-7de2-4888-98a5-7745db287a7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"vifs": []} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait [0.118722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f8b1ab6f-151a-4b5d-b191-38d50d48032f WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aceb4220-899f-49d2-8c0f-25aed0389aa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f8b1ab6f-151a-4b5d-b191-38d50d48032f", "created_at": "2025-05-22T18:20:49.081762+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f8b1ab6f-151a-4b5d-b191-38d50d48032f", "rel": "self"}, {"href": "http://localhost/deploy_templates/f8b1ab6f-151a-4b5d-b191-38d50d48032f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.066305s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.112962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': '4e70e77c-5464-49dd-b6d3-d03f86e29b24', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-28643f9b-e2e9-4ffa-b1e2-5c3bd550eade X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait [0.118087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/2a6eef40-7482-47eb-b685-b3ba0f8807c2 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6acf0805-857c-43e4-8056-44aa1006085d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2a6eef40-7482-47eb-b685-b3ba0f8807c2", "created_at": "2025-05-22T18:20:49.204232+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/2a6eef40-7482-47eb-b685-b3ba0f8807c2", "rel": "self"}, {"href": "http://localhost/deploy_templates/2a6eef40-7482-47eb-b685-b3ba0f8807c2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error [0.126236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cbe7df15-6e33-46f7-8236-82609d05bd2a X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra [0.108234s] ... 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': '20816024-54ae-4214-aaf5-bf952eb119aa', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/20816024-54ae-4214-aaf5-bf952eb119aa Openstack-Request-Id: req-2f54b1b9-9e6e-443c-8a23-c957152d3da7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "20816024-54ae-4214-aaf5-bf952eb119aa", "created_at": "2025-05-22T18:20:49.316206+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/20816024-54ae-4214-aaf5-bf952eb119aa", "rel": "self"}, {"href": "http://localhost/allocations/20816024-54ae-4214-aaf5-bf952eb119aa", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/20816024-54ae-4214-aaf5-bf952eb119aa WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-deb95513-4505-47df-b40d-a01f58427dcf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "20816024-54ae-4214-aaf5-bf952eb119aa", "created_at": "2025-05-22T18:20:49.316206+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/20816024-54ae-4214-aaf5-bf952eb119aa", "rel": "self"}, {"href": "http://localhost/allocations/20816024-54ae-4214-aaf5-bf952eb119aa", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.379153s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.134085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/1c76974a-4d8b-43e6-80d5-01617d162d41 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-657bedb9-cb82-410d-938e-9dfc9a92e270 X-Openstack-Ironic-Api-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 1c76974a-4d8b-43e6-80d5-01617d162d41 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.142126s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['node-1', '0492c2e7-e160-43b8-b010-5e460ab74bc3'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '18059bd8-4783-4b84-848d-49a18386b958', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/18059bd8-4783-4b84-848d-49a18386b958 Openstack-Request-Id: req-9e71c53d-d4d5-4f0e-aa32-d50ab8ce4004 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "18059bd8-4783-4b84-848d-49a18386b958", "created_at": "2025-05-22T18:20:49.450090+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "0492c2e7-e160-43b8-b010-5e460ab74bc3"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/18059bd8-4783-4b84-848d-49a18386b958", "rel": "self"}, {"href": "http://localhost/allocations/18059bd8-4783-4b84-848d-49a18386b958", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/18059bd8-4783-4b84-848d-49a18386b958 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b987f830-effa-4830-9e45-b3be70c7ded9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "18059bd8-4783-4b84-848d-49a18386b958", "created_at": "2025-05-22T18:20:49.450090+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "0492c2e7-e160-43b8-b010-5e460ab74bc3"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/18059bd8-4783-4b84-848d-49a18386b958", "rel": "self"}, {"href": "http://localhost/allocations/18059bd8-4783-4b84-848d-49a18386b958", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.194096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd9938ca-b191-4f6c-ba59-325d7ccb58b3 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": "d272eb04-e6a3-46da-ae76-b2cc76a7bcda", "instance_uuid": "98d1054a-6715-4e9b-8360-d6e21735cd1c", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d272eb04-e6a3-46da-ae76-b2cc76a7bcda", "rel": "self"}, {"href": "http://localhost/nodes/d272eb04-e6a3-46da-ae76-b2cc76a7bcda", "rel": "bookmark"}]}, {"uuid": "d9c64082-f55b-48c6-b972-560477ffe2f8", "instance_uuid": "077cf84e-bba2-47cd-bb31-977c50545328", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d9c64082-f55b-48c6-b972-560477ffe2f8", "rel": "self"}, {"href": "http://localhost/nodes/d9c64082-f55b-48c6-b972-560477ffe2f8", "rel": "bookmark"}]}, {"uuid": "79391818-c52f-471d-8b5c-6ddea7166253", "instance_uuid": "a881a6ec-51a0-42b9-a8e8-dbd45cb84576", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/79391818-c52f-471d-8b5c-6ddea7166253", "rel": "self"}, {"href": "http://localhost/nodes/79391818-c52f-471d-8b5c-6ddea7166253", "rel": "bookmark"}]}, {"uuid": "0ba5eb09-726c-418f-b4b9-cd5b708c5f8d", "instance_uuid": "e2c17770-6fcf-472e-b2e9-ee7508171696", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0ba5eb09-726c-418f-b4b9-cd5b708c5f8d", "rel": "self"}, {"href": "http://localhost/nodes/0ba5eb09-726c-418f-b4b9-cd5b708c5f8d", "rel": "bookmark"}]}]} GET /v1/nodes?associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8aaab417-dd1b-43a5-a01b-7bea8438a9fa 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": "d272eb04-e6a3-46da-ae76-b2cc76a7bcda", "instance_uuid": "98d1054a-6715-4e9b-8360-d6e21735cd1c", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d272eb04-e6a3-46da-ae76-b2cc76a7bcda", "rel": "self"}, {"href": "http://localhost/nodes/d272eb04-e6a3-46da-ae76-b2cc76a7bcda", "rel": "bookmark"}]}, {"uuid": "d9c64082-f55b-48c6-b972-560477ffe2f8", "instance_uuid": "077cf84e-bba2-47cd-bb31-977c50545328", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d9c64082-f55b-48c6-b972-560477ffe2f8", "rel": "self"}, {"href": "http://localhost/nodes/d9c64082-f55b-48c6-b972-560477ffe2f8", "rel": "bookmark"}]}, {"uuid": "79391818-c52f-471d-8b5c-6ddea7166253", "instance_uuid": "a881a6ec-51a0-42b9-a8e8-dbd45cb84576", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/79391818-c52f-471d-8b5c-6ddea7166253", "rel": "self"}, {"href": "http://localhost/nodes/79391818-c52f-471d-8b5c-6ddea7166253", "rel": "bookmark"}]}, {"uuid": "0ba5eb09-726c-418f-b4b9-cd5b708c5f8d", "instance_uuid": "e2c17770-6fcf-472e-b2e9-ee7508171696", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0ba5eb09-726c-418f-b4b9-cd5b708c5f8d", "rel": "self"}, {"href": "http://localhost/nodes/0ba5eb09-726c-418f-b4b9-cd5b708c5f8d", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.127631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4052e32-46cb-4d9e-a89f-1a215ea8b298 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_node.TestBIOS.test_get_one_bios_no_registry [0.145397s] ... 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-4761918a-60da-4d89-aba9-1238509e6026 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-22T18:20:49.501769+00:00", "updated_at": null, "name": "virtualization", "value": "on", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.089322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8bf97d6b-379c-435d-9763-d2fd7a9580e0', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/8bf97d6b-379c-435d-9763-d2fd7a9580e0 Openstack-Request-Id: req-37918e2d-2cf6-4018-a996-dec8baa7f9e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8bf97d6b-379c-435d-9763-d2fd7a9580e0", "created_at": "2025-05-22T18:20:49.549293+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/8bf97d6b-379c-435d-9763-d2fd7a9580e0", "rel": "self"}, {"href": "http://localhost/allocations/8bf97d6b-379c-435d-9763-d2fd7a9580e0", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.122558s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-967e7224-b772-4098-8c0c-aa046fd11163 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.110853s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '1b7bcedb-1b9a-4e7a-8eee-ead7cc5b4504', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/1b7bcedb-1b9a-4e7a-8eee-ead7cc5b4504 Openstack-Request-Id: req-28793474-9861-4508-80cc-e1d20371f146 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1b7bcedb-1b9a-4e7a-8eee-ead7cc5b4504", "created_at": "2025-05-22T18:20:49.645323+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/1b7bcedb-1b9a-4e7a-8eee-ead7cc5b4504", "rel": "self"}, {"href": "http://localhost/allocations/1b7bcedb-1b9a-4e7a-8eee-ead7cc5b4504", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/1b7bcedb-1b9a-4e7a-8eee-ead7cc5b4504 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc79eea0-c8ae-400b-8417-6b7eeb62b409 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1b7bcedb-1b9a-4e7a-8eee-ead7cc5b4504", "created_at": "2025-05-22T18:20:49.645323+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/1b7bcedb-1b9a-4e7a-8eee-ead7cc5b4504", "rel": "self"}, {"href": "http://localhost/allocations/1b7bcedb-1b9a-4e7a-8eee-ead7cc5b4504", "rel": "bookmark"}], "node_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.183899s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c2fa5b5-cbaf-4655-9b50-10b534eca2c3 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": "a74f9e33-3914-4acb-8677-b7a0741ca0df", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a74f9e33-3914-4acb-8677-b7a0741ca0df", "rel": "self"}, {"href": "http://localhost/nodes/a74f9e33-3914-4acb-8677-b7a0741ca0df", "rel": "bookmark"}]}, {"uuid": "49ad04a6-d1c6-492f-a513-79bdf909b500", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/49ad04a6-d1c6-492f-a513-79bdf909b500", "rel": "self"}, {"href": "http://localhost/nodes/49ad04a6-d1c6-492f-a513-79bdf909b500", "rel": "bookmark"}]}, {"uuid": "3eaa06e2-7f0f-40cd-99b0-d4a23905f2eb", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/3eaa06e2-7f0f-40cd-99b0-d4a23905f2eb", "rel": "self"}, {"href": "http://localhost/nodes/3eaa06e2-7f0f-40cd-99b0-d4a23905f2eb", "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=3eaa06e2-7f0f-40cd-99b0-d4a23905f2eb"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history [0.172063s] ... 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-809d73db-a30c-448f-b7f4-3599aa01895a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": []} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.077488s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f0c375fd-1d92-4ee1-9a63-48c54879ed5e', 'owner': None} GOT Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async [0.113566s] ... 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-e07bfd88-ed30-44c0-ab94-76c995c9ceeb 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.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed [0.085143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '53608ef5-8b4a-4e8c-b2b9-0f7248392c29', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-11aaf0b1-7b9a-4921-886e-1ab0da320650 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields [0.175689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=driver_info,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbcbf4a7-86d5-472a-b57d-aa95e002341f 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": "d5d005a4-d938-4ed3-bd1d-aa1d1c1edcd6", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/d5d005a4-d938-4ed3-bd1d-aa1d1c1edcd6", "rel": "self"}, {"href": "http://localhost/nodes/d5d005a4-d938-4ed3-bd1d-aa1d1c1edcd6", "rel": "bookmark"}]}, {"uuid": "591b7805-cb87-4ac8-808a-988f89e23a40", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/591b7805-cb87-4ac8-808a-988f89e23a40", "rel": "self"}, {"href": "http://localhost/nodes/591b7805-cb87-4ac8-808a-988f89e23a40", "rel": "bookmark"}]}, {"uuid": "b8099bc4-3acd-4d8b-aadb-bb336970ef3e", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/b8099bc4-3acd-4d8b-aadb-bb336970ef3e", "rel": "self"}, {"href": "http://localhost/nodes/b8099bc4-3acd-4d8b-aadb-bb336970ef3e", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=b8099bc4-3acd-4d8b-aadb-bb336970ef3e"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail [0.172105s] ... 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-3b750151-f81b-4d39-a5c6-1c38c5906253 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": "100dada5-d964-4609-ad46-8dacfc3e0ec6", "created_at": "2025-05-22T18:20:49.832213+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/100dada5-d964-4609-ad46-8dacfc3e0ec6", "rel": "self"}]}, {"uuid": "bd5ebdda-33d7-4963-a316-61c9a13d6a41", "created_at": "2025-05-22T18:20:49.852025+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/bd5ebdda-33d7-4963-a316-61c9a13d6a41", "rel": "self"}]}, {"uuid": "722f7542-748f-412c-911b-be413d7fa16c", "created_at": "2025-05-22T18:20:49.853016+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/722f7542-748f-412c-911b-be413d7fa16c", "rel": "self"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.135951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-8b82c867-93be-49ac-9a13-e47084fa7ed7 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.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner [0.097008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a9b672ba-6f0d-4e38-930e-d59823253deb', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/a9b672ba-6f0d-4e38-930e-d59823253deb Openstack-Request-Id: req-5bc8c6e4-b333-450e-8043-607f2aa6ab23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "a9b672ba-6f0d-4e38-930e-d59823253deb", "created_at": "2025-05-22T18:20:49.911328+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/a9b672ba-6f0d-4e38-930e-d59823253deb", "rel": "self"}, {"href": "http://localhost/allocations/a9b672ba-6f0d-4e38-930e-d59823253deb", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/a9b672ba-6f0d-4e38-930e-d59823253deb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb18b339-84e5-46ce-91dc-f279cefe3db6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "a9b672ba-6f0d-4e38-930e-d59823253deb", "created_at": "2025-05-22T18:20:49.911328+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/a9b672ba-6f0d-4e38-930e-d59823253deb", "rel": "self"}, {"href": "http://localhost/allocations/a9b672ba-6f0d-4e38-930e-d59823253deb", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden [0.070508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a49d5858-1c13-4df4-a212-d028142b8e9b', 'owner': None} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d3307d2c-6d3a-4c2a-a303-7f4884023ebb 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_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.098084s] ... 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-8d06d377-ebd7-45b8-9080-5fca3d703ff4 X-Openstack-Ironic-Api-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_node.TestListNodes.test_collection_links_default_limit [0.152434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14d167b7-8c63-4d4b-996f-5154bf72b7d4 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": "8ad1b35a-5617-4b64-9a36-6c6c0b674361", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8ad1b35a-5617-4b64-9a36-6c6c0b674361", "rel": "self"}, {"href": "http://localhost/nodes/8ad1b35a-5617-4b64-9a36-6c6c0b674361", "rel": "bookmark"}]}, {"uuid": "c19800a4-e3bf-4d3e-b682-ab05b52c81bd", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/c19800a4-e3bf-4d3e-b682-ab05b52c81bd", "rel": "self"}, {"href": "http://localhost/nodes/c19800a4-e3bf-4d3e-b682-ab05b52c81bd", "rel": "bookmark"}]}, {"uuid": "96adee66-01a1-4722-90d2-5d5eb09d3394", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/96adee66-01a1-4722-90d2-5d5eb09d3394", "rel": "self"}, {"href": "http://localhost/nodes/96adee66-01a1-4722-90d2-5d5eb09d3394", "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=96adee66-01a1-4722-90d2-5d5eb09d3394"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries [0.160798s] ... 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-05cd6036-d173-47db-b374-2bbcff07d53c 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": "2d62111d-35cf-47e5-9bef-e6bcbd6f2728", "created_at": "2025-05-22T18:20:50.004781+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2d62111d-35cf-47e5-9bef-e6bcbd6f2728", "rel": "self"}]}, {"uuid": "e1aeaa6a-722e-4984-9699-6a3924e55b2c", "created_at": "2025-05-22T18:20:50.013139+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e1aeaa6a-722e-4984-9699-6a3924e55b2c", "rel": "self"}]}, {"uuid": "a2d67360-aa86-430e-9e63-d0c3feb1070d", "created_at": "2025-05-22T18:20:50.014198+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a2d67360-aa86-430e-9e63-d0c3feb1070d", "rel": "self"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal [0.107219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '094add3c-20b0-4d19-b408-1c81d063df36', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/094add3c-20b0-4d19-b408-1c81d063df36 Openstack-Request-Id: req-1e040f2b-3387-41ce-9435-f332f149c974 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "094add3c-20b0-4d19-b408-1c81d063df36", "created_at": "2025-05-22T18:20:50.088907+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/094add3c-20b0-4d19-b408-1c81d063df36", "rel": "self"}, {"href": "http://localhost/allocations/094add3c-20b0-4d19-b408-1c81d063df36", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/094add3c-20b0-4d19-b408-1c81d063df36 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-efd02638-6d0c-4214-9e03-41426cf0fa5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "094add3c-20b0-4d19-b408-1c81d063df36", "created_at": "2025-05-22T18:20:50.088907+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/094add3c-20b0-4d19-b408-1c81d063df36", "rel": "self"}, {"href": "http://localhost/allocations/094add3c-20b0-4d19-b408-1c81d063df36", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.128795s] ... 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-99ad983f-a3d7-422d-a230-f1753d13a761 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 "foo" Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param [0.163310s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=a728d71e-7138-46f6-b5f7-b961a118bad8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8234da6b-921f-4473-bb9f-842367d04bee 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": "97693833-33e7-4a40-afa3-b91546e78f5d", "instance_uuid": "a728d71e-7138-46f6-b5f7-b961a118bad8", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/97693833-33e7-4a40-afa3-b91546e78f5d", "rel": "self"}, {"href": "http://localhost/nodes/97693833-33e7-4a40-afa3-b91546e78f5d", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_with_sort [0.156847s] ... 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-0f1eb5c0-2e41-4530-8af3-1fb4aa7e6276 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": "96a0d4ea-b9de-469d-8529-b5682592bb1f", "created_at": "2025-05-22T18:20:50.180470+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/96a0d4ea-b9de-469d-8529-b5682592bb1f", "rel": "self"}]}, {"uuid": "66dd35c6-cd05-45f5-849f-fbc512e6d1be", "created_at": "2025-05-22T18:20:50.179720+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/66dd35c6-cd05-45f5-849f-fbc512e6d1be", "rel": "self"}]}, {"uuid": "c089f606-cc91-441a-ac72-40a4f9895aad", "created_at": "2025-05-22T18:20:50.178886+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c089f606-cc91-441a-ac72-40a4f9895aad", "rel": "self"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.097316s] ... 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-c01b77ce-edf6-4372-8d60-0acdbe43cf6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.148687s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e27a7d8-00d6-467f-9d3e-c64312f38ff4 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-22T18:20:50.264690+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version [0.118720s] ... 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_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.139140s] ... 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-89596f50-93a5-489f-98d4-72f092283d01 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-5fa7ea4c-89c5-4f7d-a801-52f09bd2324d 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"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.116111s] ... 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-d710f4e2-68fb-4328-bc68-0a4b904f104c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.119033s] ... 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-c6ffca2c-ab2a-42c6-886a-c4268347db30 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.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden [0.099453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-12634736-41c3-4b02-911e-ce6654368275 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_allocation.TestPost.test_create_restricted_allocation_older_version [0.467857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '6fc9316e-c67f-404c-9255-fea5c6bb2db0'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/6fc9316e-c67f-404c-9255-fea5c6bb2db0 Openstack-Request-Id: req-e79de28d-ebcb-41bc-81c7-27b8f8769dcb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "6fc9316e-c67f-404c-9255-fea5c6bb2db0", "created_at": "2025-05-22T18:20:50.550091+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/6fc9316e-c67f-404c-9255-fea5c6bb2db0", "rel": "self"}, {"href": "http://localhost/allocations/6fc9316e-c67f-404c-9255-fea5c6bb2db0", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/6fc9316e-c67f-404c-9255-fea5c6bb2db0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f5626add-3599-4b15-abc3-ec310592d5a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "6fc9316e-c67f-404c-9255-fea5c6bb2db0", "created_at": "2025-05-22T18:20:50.550091+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/6fc9316e-c67f-404c-9255-fea5c6bb2db0", "rel": "self"}, {"href": "http://localhost/allocations/6fc9316e-c67f-404c-9255-fea5c6bb2db0", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination [0.232748s] ... 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-d2edf01c-519d-409f-900b-afeefe09074e 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": "7e156804-de7e-42f1-b0e7-cce4650deae0", "created_at": "2025-05-22T18:20:50.457756+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7e156804-de7e-42f1-b0e7-cce4650deae0", "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=7e156804-de7e-42f1-b0e7-cce4650deae0"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=7e156804-de7e-42f1-b0e7-cce4650deae0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0711480c-aff2-43a2-919b-edf7c5b45a53 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": "a32abde4-d761-44a9-8811-694074fe9a6b", "created_at": "2025-05-22T18:20:50.458723+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a32abde4-d761-44a9-8811-694074fe9a6b", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2025-05-22T18:20:50Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=7e156804-de7e-42f1-b0e7-cce4650deae0)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=a32abde4-d761-44a9-8811-694074fe9a6b"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=a32abde4-d761-44a9-8811-694074fe9a6b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b017e3b-3586-4a0f-921d-f24c176dde8d 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": "49b6c372-e0a6-4951-91a8-2d8cd4c89a53", "created_at": "2025-05-22T18:20:50.459485+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/49b6c372-e0a6-4951-91a8-2d8cd4c89a53", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2025-05-22T18:20:50Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=a32abde4-d761-44a9-8811-694074fe9a6b)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=49b6c372-e0a6-4951-91a8-2d8cd4c89a53"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.115449s] ... 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-f24756e7-ffd0-48cb-86e3-c312241b77fd 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"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner [0.078360s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '247da7cb-b8b5-4b69-942c-f38fb45a6a73', 'owner': '54321'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f703f6c8-267d-4eaa-b1b5-d77efbd556e4 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_node.TestListNodes.test_detail_instance_uuid [0.149753s] ... 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-6fa5d308-9b9d-423f-bca7-3ecb02e9e5d2 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-22T18:20:50.641760+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_node.TestNodeHistory.test_get_history_item [0.167155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d9e8db28-5c39-4b7a-9e6a-92edf374fa04 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b492f3e-5667-476f-b075-ca591e67b3cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"uuid": "d9e8db28-5c39-4b7a-9e6a-92edf374fa04", "created_at": "2025-05-22T18:20:50.679455+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/d9e8db28-5c39-4b7a-9e6a-92edf374fa04", "rel": "self"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner [0.103821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c9ec9890-2acb-4fb5-82ff-878e42d3f115', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/c9ec9890-2acb-4fb5-82ff-878e42d3f115 Openstack-Request-Id: req-ed520274-2b7c-47b9-8142-cc1fced6e5a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "c9ec9890-2acb-4fb5-82ff-878e42d3f115", "created_at": "2025-05-22T18:20:50.745407+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/c9ec9890-2acb-4fb5-82ff-878e42d3f115", "rel": "self"}, {"href": "http://localhost/allocations/c9ec9890-2acb-4fb5-82ff-878e42d3f115", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/c9ec9890-2acb-4fb5-82ff-878e42d3f115 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e59205c4-ecb4-4903-80e6-144d4d9e8da8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "c9ec9890-2acb-4fb5-82ff-878e42d3f115", "created_at": "2025-05-22T18:20:50.745407+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/c9ec9890-2acb-4fb5-82ff-878e42d3f115", "rel": "self"}, {"href": "http://localhost/allocations/c9ec9890-2acb-4fb5-82ff-878e42d3f115", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.183598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-abcb727b-a048-4b0d-8c67-007419fe436b 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-9a393d64-13c3-40c2-8d2d-b23f6c7accbd 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-a93c3b67-0e8e-41b8-947a-683afc88183f 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-618865a5-f30a-4414-ae0d-98bfdaeb56af 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-ca84a3a6-1116-4e96-88a7-de412849dabb 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match [0.155150s] ... 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-eb390a48-9af6-4361-8bb0-e878f5ba01d0 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-22T18:20:50.794816+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "46c0bf8a-846d-49a5-9724-5a61a5efa6bf", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.135853s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-32b1d8d7-1154-43c7-9ed0-51beeeca9cde 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": "37c4299d-b19d-4a9f-a9e9-dd5aefc59d8f", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/37c4299d-b19d-4a9f-a9e9-dd5aefc59d8f", "rel": "self"}, {"href": "http://localhost/chassis/37c4299d-b19d-4a9f-a9e9-dd5aefc59d8f", "rel": "bookmark"}]}, {"uuid": "9efaa1f8-a591-481b-ada1-e448f3643e3d", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/9efaa1f8-a591-481b-ada1-e448f3643e3d", "rel": "self"}, {"href": "http://localhost/chassis/9efaa1f8-a591-481b-ada1-e448f3643e3d", "rel": "bookmark"}]}, {"uuid": "cc9d07e4-cc25-4ba4-953d-60b2d1cbe797", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/cc9d07e4-cc25-4ba4-953d-60b2d1cbe797", "rel": "self"}, {"href": "http://localhost/chassis/cc9d07e4-cc25-4ba4-953d-60b2d1cbe797", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=cc9d07e4-cc25-4ba4-953d-60b2d1cbe797"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found [0.159328s] ... 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-2d57a57e-7289-49d5-8a54-6a189e4eae55 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_driver.TestListDrivers.test_drivers_collection_custom_fields [0.123375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c6304f9-3088-4f96-9e45-be78d493dd7a 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.TestListNodes.test_detail_instance_uuid_project_not_match [0.157064s] ... 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-d333bb48-8948-477f-a163-52760ed36750 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_node.TestNodeHistory.test_get_history_item_old_version [0.139165s] ... 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_chassis.TestListChassis.test_collection_links_custom_fields [0.133614s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b3e5ba5-c9a3-4619-9cab-b3c4733dfd5c 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": "2097f1ee-2d8a-4e4f-9231-3f8ad4cea881", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/2097f1ee-2d8a-4e4f-9231-3f8ad4cea881", "rel": "self"}, {"href": "http://localhost/chassis/2097f1ee-2d8a-4e4f-9231-3f8ad4cea881", "rel": "bookmark"}]}, {"uuid": "9ff74339-6487-4ce4-bfaa-0e616331910e", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/9ff74339-6487-4ce4-bfaa-0e616331910e", "rel": "self"}, {"href": "http://localhost/chassis/9ff74339-6487-4ce4-bfaa-0e616331910e", "rel": "bookmark"}]}, {"uuid": "cd02c6e6-9a16-42f3-8361-f7ff8749d92a", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/cd02c6e6-9a16-42f3-8361-f7ff8749d92a", "rel": "self"}, {"href": "http://localhost/chassis/cd02c6e6-9a16-42f3-8361-f7ff8749d92a", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=cd02c6e6-9a16-42f3-8361-f7ff8749d92a"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false [0.158255s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts&detail=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ffaffef-37da-489c-95fc-685860588746 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.TestListNodes.test_detail_list_all_forbid_project_mismatch [0.103372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-647aef06-6bf9-40bc-9c04-5091b92344f8 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_chassis.TestListChassis.test_collection_links_default_limit [0.114698s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99ab3d7c-7ce8-45d5-a9ba-83a9feaf2813 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": "e6e6d0d6-2e05-41cb-ad6a-77730afe5187", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e6e6d0d6-2e05-41cb-ad6a-77730afe5187", "rel": "self"}, {"href": "http://localhost/chassis/e6e6d0d6-2e05-41cb-ad6a-77730afe5187", "rel": "bookmark"}]}, {"uuid": "62aa1d88-5342-480f-a2ab-fc728e7ab83f", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/62aa1d88-5342-480f-a2ab-fc728e7ab83f", "rel": "self"}, {"href": "http://localhost/chassis/62aa1d88-5342-480f-a2ab-fc728e7ab83f", "rel": "bookmark"}]}, {"uuid": "e0cad8d4-6cee-47cb-be36-a8ac25c23e1a", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e0cad8d4-6cee-47cb-be36-a8ac25c23e1a", "rel": "self"}, {"href": "http://localhost/chassis/e0cad8d4-6cee-47cb-be36-a8ac25c23e1a", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=e0cad8d4-6cee-47cb-be36-a8ac25c23e1a"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true [0.116009s] ... 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-2ae1074b-32dd-4d67-a210-f18ee26e7c97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list [0.147237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo&shard=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af57567c-0377-4d28-bf89-7a89822778a8 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": "6d54a81c-6386-44dc-84e4-d4dd22dec7fa", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6d54a81c-6386-44dc-84e4-d4dd22dec7fa", "rel": "self"}, {"href": "http://localhost/nodes/6d54a81c-6386-44dc-84e4-d4dd22dec7fa", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.098030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2bdf5e58-1878-4362-8092-97b2e36a2e2b 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-22T18:20:51.242899+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_node.TestListNodes.test_detail_list_all_forbidden [0.168563s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3cbcc802-01a7-4617-b532-ec65af0c8b43 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": "6509391c-608d-4feb-9e30-f8e9d7d0c30b", "created_at": "2025-05-22T18:20:51.202282+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/6509391c-608d-4feb-9e30-f8e9d7d0c30b", "rel": "self"}, {"href": "http://localhost/nodes/6509391c-608d-4feb-9e30-f8e9d7d0c30b", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6509391c-608d-4feb-9e30-f8e9d7d0c30b/ports", "rel": "self"}, {"href": "http://localhost/nodes/6509391c-608d-4feb-9e30-f8e9d7d0c30b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6509391c-608d-4feb-9e30-f8e9d7d0c30b/states", "rel": "self"}, {"href": "http://localhost/nodes/6509391c-608d-4feb-9e30-f8e9d7d0c30b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6509391c-608d-4feb-9e30-f8e9d7d0c30b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6509391c-608d-4feb-9e30-f8e9d7d0c30b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6509391c-608d-4feb-9e30-f8e9d7d0c30b/volume", "rel": "self"}, {"href": "http://localhost/nodes/6509391c-608d-4feb-9e30-f8e9d7d0c30b/volume", "rel": "bookmark"}]}, {"uuid": "7e948806-cc37-425d-b1ab-72a699c490f6", "created_at": "2025-05-22T18:20:51.204166+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/7e948806-cc37-425d-b1ab-72a699c490f6", "rel": "self"}, {"href": "http://localhost/nodes/7e948806-cc37-425d-b1ab-72a699c490f6", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7e948806-cc37-425d-b1ab-72a699c490f6/ports", "rel": "self"}, {"href": "http://localhost/nodes/7e948806-cc37-425d-b1ab-72a699c490f6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7e948806-cc37-425d-b1ab-72a699c490f6/states", "rel": "self"}, {"href": "http://localhost/nodes/7e948806-cc37-425d-b1ab-72a699c490f6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7e948806-cc37-425d-b1ab-72a699c490f6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7e948806-cc37-425d-b1ab-72a699c490f6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7e948806-cc37-425d-b1ab-72a699c490f6/volume", "rel": "self"}, {"href": "http://localhost/nodes/7e948806-cc37-425d-b1ab-72a699c490f6/volume", "rel": "bookmark"}]}, {"uuid": "8294b50b-a9fe-4252-aa07-c09d1fca3e7d", "created_at": "2025-05-22T18:20:51.213124+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/8294b50b-a9fe-4252-aa07-c09d1fca3e7d", "rel": "self"}, {"href": "http://localhost/nodes/8294b50b-a9fe-4252-aa07-c09d1fca3e7d", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8294b50b-a9fe-4252-aa07-c09d1fca3e7d/ports", "rel": "self"}, {"href": "http://localhost/nodes/8294b50b-a9fe-4252-aa07-c09d1fca3e7d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8294b50b-a9fe-4252-aa07-c09d1fca3e7d/states", "rel": "self"}, {"href": "http://localhost/nodes/8294b50b-a9fe-4252-aa07-c09d1fca3e7d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8294b50b-a9fe-4252-aa07-c09d1fca3e7d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8294b50b-a9fe-4252-aa07-c09d1fca3e7d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8294b50b-a9fe-4252-aa07-c09d1fca3e7d/volume", "rel": "self"}, {"href": "http://localhost/nodes/8294b50b-a9fe-4252-aa07-c09d1fca3e7d/volume", "rel": "bookmark"}]}, {"uuid": "7208177a-0aa8-48e6-a3df-22ebefe3bb53", "created_at": "2025-05-22T18:20:51.215236+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/7208177a-0aa8-48e6-a3df-22ebefe3bb53", "rel": "self"}, {"href": "http://localhost/nodes/7208177a-0aa8-48e6-a3df-22ebefe3bb53", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7208177a-0aa8-48e6-a3df-22ebefe3bb53/ports", "rel": "self"}, {"href": "http://localhost/nodes/7208177a-0aa8-48e6-a3df-22ebefe3bb53/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7208177a-0aa8-48e6-a3df-22ebefe3bb53/states", "rel": "self"}, {"href": "http://localhost/nodes/7208177a-0aa8-48e6-a3df-22ebefe3bb53/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7208177a-0aa8-48e6-a3df-22ebefe3bb53/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7208177a-0aa8-48e6-a3df-22ebefe3bb53/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7208177a-0aa8-48e6-a3df-22ebefe3bb53/volume", "rel": "self"}, {"href": "http://localhost/nodes/7208177a-0aa8-48e6-a3df-22ebefe3bb53/volume", "rel": "bookmark"}]}, {"uuid": "f974c810-1001-4cf7-b172-64da8dea47fb", "created_at": "2025-05-22T18:20:51.219211+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/f974c810-1001-4cf7-b172-64da8dea47fb", "rel": "self"}, {"href": "http://localhost/nodes/f974c810-1001-4cf7-b172-64da8dea47fb", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f974c810-1001-4cf7-b172-64da8dea47fb/ports", "rel": "self"}, {"href": "http://localhost/nodes/f974c810-1001-4cf7-b172-64da8dea47fb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f974c810-1001-4cf7-b172-64da8dea47fb/states", "rel": "self"}, {"href": "http://localhost/nodes/f974c810-1001-4cf7-b172-64da8dea47fb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f974c810-1001-4cf7-b172-64da8dea47fb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f974c810-1001-4cf7-b172-64da8dea47fb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f974c810-1001-4cf7-b172-64da8dea47fb/volume", "rel": "self"}, {"href": "http://localhost/nodes/f974c810-1001-4cf7-b172-64da8dea47fb/volume", "rel": "bookmark"}]}, {"uuid": "b1194dab-0a1e-4fda-938b-2d15703ad530", "created_at": "2025-05-22T18:20:51.220812+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/b1194dab-0a1e-4fda-938b-2d15703ad530", "rel": "self"}, {"href": "http://localhost/nodes/b1194dab-0a1e-4fda-938b-2d15703ad530", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b1194dab-0a1e-4fda-938b-2d15703ad530/ports", "rel": "self"}, {"href": "http://localhost/nodes/b1194dab-0a1e-4fda-938b-2d15703ad530/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b1194dab-0a1e-4fda-938b-2d15703ad530/states", "rel": "self"}, {"href": "http://localhost/nodes/b1194dab-0a1e-4fda-938b-2d15703ad530/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b1194dab-0a1e-4fda-938b-2d15703ad530/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b1194dab-0a1e-4fda-938b-2d15703ad530/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b1194dab-0a1e-4fda-938b-2d15703ad530/volume", "rel": "self"}, {"href": "http://localhost/nodes/b1194dab-0a1e-4fda-938b-2d15703ad530/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_detail [0.102377s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo,bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8833623-7134-44e8-b191-89c4229a8c77 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": "344d1e7c-876a-4c6a-b0c2-6d28486d360b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/344d1e7c-876a-4c6a-b0c2-6d28486d360b", "rel": "self"}, {"href": "http://localhost/nodes/344d1e7c-876a-4c6a-b0c2-6d28486d360b", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields [0.115316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,invalid WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bafae038-8bbc-4f29-8a24-85e744f8c3b4 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}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.098351s] ... 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-fd2d6a8e-8139-4054-a6e2-c74b6ffdab51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project [0.082449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2a46a215-0f37-40b7-b2a5-21e3d5934bdd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard [0.098702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {'fields': 'shard'} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0886746-b0d7-4df7-a7ab-79cfd11312fb 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.116966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-06d9d8d6-2a15-4a20-a33a-0481b6fe6c57 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_chassis.TestListChassis.test_detail_query [0.107291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3914c22c-dfa8-4579-b462-ee4146275ce9 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-22T18:20:51.452887+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_node.TestListNodes.test_detail_query_false [0.129871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-980d1ece-28b8-47dc-b37e-144b1394a3ec 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-783638b9-d0ea-47c6-b58f-4345bf62ea1a 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_node.TestNodeShardGets.test_filtering_by_shard_detail_fails_wrong_version [0.103225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f0668db6-5982-4248-bab7-35e9beceb3f2 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_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.090217s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=False WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-027760db-1aa4-48f5-a27a-cd540e121d84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_fails_wrong_version [0.065085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b2af4f86-a584-4375-9ac2-ec37acd33400 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_snmpv3 [0.101419s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e12c2fc0-9acc-4d33-9084-7902a0f5fbcd 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-22T18:20:51.567386+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_chassis.TestListChassis.test_detail_query_false [0.139951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbb448e5-e785-4384-843a-a19dc2e04e38 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-128032a9-87b6-4e00-87d6-0b320abf6b55 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_driver.TestListDrivers.test_drivers_get_one_not_found [0.087721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/nope WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4b673cab-c192-4906-b169-637b48c83618 X-Openstack-Ironic-Api-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_node.TestNodeShardGets.test_filtering_by_sharded [0.120546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sharded=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d742a459-e5a4-4798-a139-393560550ac5 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-20000e2f-e894-44ee-b4c2-963216c69dbd 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": "56fc92ad-e4d0-468d-bacf-f81aae6edbdf", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/56fc92ad-e4d0-468d-bacf-f81aae6edbdf", "rel": "self"}, {"href": "http://localhost/nodes/56fc92ad-e4d0-468d-bacf-f81aae6edbdf", "rel": "bookmark"}]}, {"uuid": "87d06d31-f50c-431f-a60e-c7cdd74fc9e0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/87d06d31-f50c-431f-a60e-c7cdd74fc9e0", "rel": "self"}, {"href": "http://localhost/nodes/87d06d31-f50c-431f-a60e-c7cdd74fc9e0", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.091904s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True&fields=description WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d6c0928a-810d-43e6-98fc-ac70389ddac7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.111027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c7bcc55-1311-401c-8d0b-8e03faab632b 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": "60e0197c-5d5e-4a06-ac1b-0a830282afed", "created_at": "2025-05-22T18:20:51.684707+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/60e0197c-5d5e-4a06-ac1b-0a830282afed", "rel": "self"}, {"href": "http://localhost/nodes/60e0197c-5d5e-4a06-ac1b-0a830282afed", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/60e0197c-5d5e-4a06-ac1b-0a830282afed/ports", "rel": "self"}, {"href": "http://localhost/nodes/60e0197c-5d5e-4a06-ac1b-0a830282afed/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/60e0197c-5d5e-4a06-ac1b-0a830282afed/states", "rel": "self"}, {"href": "http://localhost/nodes/60e0197c-5d5e-4a06-ac1b-0a830282afed/states", "rel": "bookmark"}]}, {"uuid": "c125a979-a068-49a7-90c3-b59429d468d2", "created_at": "2025-05-22T18:20:51.679674+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/c125a979-a068-49a7-90c3-b59429d468d2", "rel": "self"}, {"href": "http://localhost/nodes/c125a979-a068-49a7-90c3-b59429d468d2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c125a979-a068-49a7-90c3-b59429d468d2/ports", "rel": "self"}, {"href": "http://localhost/nodes/c125a979-a068-49a7-90c3-b59429d468d2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c125a979-a068-49a7-90c3-b59429d468d2/states", "rel": "self"}, {"href": "http://localhost/nodes/c125a979-a068-49a7-90c3-b59429d468d2/states", "rel": "bookmark"}]}, {"uuid": "4f78163f-da69-4378-ad78-cf02281800a5", "created_at": "2025-05-22T18:20:51.674409+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/4f78163f-da69-4378-ad78-cf02281800a5", "rel": "self"}, {"href": "http://localhost/nodes/4f78163f-da69-4378-ad78-cf02281800a5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4f78163f-da69-4378-ad78-cf02281800a5/ports", "rel": "self"}, {"href": "http://localhost/nodes/4f78163f-da69-4378-ad78-cf02281800a5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4f78163f-da69-4378-ad78-cf02281800a5/states", "rel": "self"}, {"href": "http://localhost/nodes/4f78163f-da69-4378-ad78-cf02281800a5/states", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_single_shard_detail [0.100873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f31c093-99a0-4b37-8ba9-36217b6e3577 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-22T18:20:51.759419+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_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.175818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b5c34505-8a2f-4dd8-907d-5cd96623d968 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_boot_interface": null, "enabled_boot_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e99a0733-f2e0-419d-b9ed-89114755a507 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-7de8c16c-b78d-4e6f-b573-a37f50aac04f 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"}]} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed [0.084130s] ... 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-88c5151b-d1b2-4018-9282-b4bbe3fcc548 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_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.096461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=False&fields=description WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-521ce046-6373-4020-a36c-f31829f62d16 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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field [0.095717s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71a35a69-8284-4ccb-9160-c6ec802c8eab 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-22T18:20:51.857074+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.115738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7a0db5ab-1055-4aac-a178-da3d23e3cfc9 X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.153949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f3c82f1-7095-4b3e-b4ae-4cd62b868f89 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_rescue_interface": null, "enabled_rescue_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ced74e0-0749-4ea7-a353-ef1e9e88c8c5 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-e4c88fdd-10ac-44b8-b001-d873e6295b4e 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_node.TestNodeShardGets.test_get_node_shard_field_fails_wrong_version [0.093902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3ed73d0a-1a6a-4a85-ac2d-56fa04b9a0b9 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-22T18:20:51.949735+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor [0.042951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d4d0ff7-b104-4597-9a4a-8e9e9c90c5c9 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_chassis.TestListChassis.test_empty [0.075183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0786bc72-30cd-485b-abdc-ea205b298b6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": []} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.039977s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=working WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dfdf8cd8-bf6a-4c10-baef-c631cdacb4de 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}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.072621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d66373a-1261-4074-8082-3791c25242a3 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": "f0788f38-71be-468b-9245-1c6a1be8c73b", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/f0788f38-71be-468b-9245-1c6a1be8c73b", "rel": "self"}, {"href": "http://localhost/chassis/f0788f38-71be-468b-9245-1c6a1be8c73b", "rel": "bookmark"}]}, {"uuid": "d7b93965-e7ed-4fc7-8439-fc450767e606", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d7b93965-e7ed-4fc7-8439-fc450767e606", "rel": "self"}, {"href": "http://localhost/chassis/d7b93965-e7ed-4fc7-8439-fc450767e606", "rel": "bookmark"}]}, {"uuid": "cfc7ec08-cc92-496e-9969-59c372305c66", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/cfc7ec08-cc92-496e-9969-59c372305c66", "rel": "self"}, {"href": "http://localhost/chassis/cfc7ec08-cc92-496e-9969-59c372305c66", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.055180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-48024d39-d295-4639-9ffa-acf733321791 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_driver.TestListDrivers.test_drivers_type_filter_classic [0.044800s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4204b35f-2860-4e38-9a4c-983cebef8310 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": []} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.069656s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31ce3bab-a871-4f5b-9ea3-681d4bc0b82a 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/8eaea8e7-3063-49b9-9de9-9d28f5fbb1ab", "rel": "self"}, {"href": "http://localhost/chassis/8eaea8e7-3063-49b9-9de9-9d28f5fbb1ab", "rel": "bookmark"}]}, {"extra": {}, "links": [{"href": "http://localhost/v1/chassis/2527c026-af9f-4fe7-ace6-075981dcaf18", "rel": "self"}, {"href": "http://localhost/chassis/2527c026-af9f-4fe7-ace6-075981dcaf18", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=2527c026-af9f-4fe7-ace6-075981dcaf18"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.205217s] ... 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-caf70de7-1ce6-4f83-966e-0153f00c59b3 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-f0ea6b81-b18e-4ff8-aa8d-88efa6512dd9 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_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.052504s] ... 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-0fa49308-ce9f-4499-8478-04566e97eb1f X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.079834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=dynamic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9a62503c-a5bb-422c-b848-dea95b705983 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query [0.475508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ab3a41a-c1f5-4c0b-ba8e-62122c581ab4 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-22T18:20:52.233665+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_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.083814s] ... 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-dfd7e9cf-6943-4f54-971a-7dbca226919b X-Openstack-Ironic-Api-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_driver.TestListDrivers.test_drivers_with_dynamic [0.083771s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd67db6a-eec5-4c8b-bada-9e75b6c3f9b9 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-c548cbf9-ec9d-4789-87c3-65957240add2 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-f6505bae-dac4-45b1-b2b0-402b5b7b8a63 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-5ba46066-9bc3-4317-81be-6ba8567ba113 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-e83997f3-55eb-42bd-8641-1608ff78ee3d 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.063420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1faceb84-42d9-4b2e-b1d7-c69209c45721 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.065251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-282bfecd-d021-4ad7-a839-e17635921572 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-22T18:20:52.325964+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_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.075501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79df99d6-e169-410b-8bfd-00c3743d3f56 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_boot_interface": null, "enabled_boot_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"]}, {"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_boot_interface": null, "enabled_boot_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": []}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db71d8b4-17ba-4149-a2bf-49ee5f364af3 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-4c7a1ca4-5800-4ce8-9d82-1b0be76661ca 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-422b0cca-7343-4d51-90f3-7c43d7c7929f 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-1ce4b9f3-5b48-4842-a559-49a037d53b f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.210106s] ... 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-5e23f1db-d456-4cff-bbf1-bb17928c93d3 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-22T18:20:52.350074+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-6767a557-13c5-4e93-a37f-859d2c923e00 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-22T18:20:52.350074+00:00", "updated_at": null, "automated_clean": true, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.091230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=False&fields=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41464152-1995-45ac-8249-c713d85122e5 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.073725s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d588b6b-560a-4c74-b836-698a276943ea 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_rescue_interface": null, "enabled_rescue_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["direct", "ansible"]}, {"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_rescue_interface": null, "enabled_rescue_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": []}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a072993f-fd62-4d35-ba82-aa8b25dc8849 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-c7d4f72f-34d2-41bf-839f-53c11fae743a 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- cd57fd62-a368-4183-845d-4015e2448183 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-f02c3e04-bf4f-4ce8-a897-5e025b3ecdb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields [0.111600s] ... 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-1d6c8383-0cb5-47b4-9f96-d85c5380de8a 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.076799s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3b1beb60-8d0a-4abe-ba17-343bb5010e78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.072448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/d716ede0-676b-4915-9cac-465610c9ef14 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9a488878-2ae5-4434-a9a0-0f3e6c290896 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d716ede0-676b-4915-9cac-465610c9ef14", "created_at": "2025-05-22T18:20:52.494933+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d716ede0-676b-4915-9cac-465610c9ef14", "rel": "self"}, {"href": "http://localhost/chassis/d716ede0-676b-4915-9cac-465610c9ef14", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/d716ede0-676b-4915-9cac-465610c9ef14/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d716ede0-676b-4915-9cac-465610c9ef14/nodes", "rel": "bookmark"}]]} GET /v1/chassis/d716ede0-676b-4915-9cac-465610c9ef14 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-334116fc-8013-493d-8975-2d0c595ed594 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d716ede0-676b-4915-9cac-465610c9ef14", "created_at": "2025-05-22T18:20:52.494933+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d716ede0-676b-4915-9cac-465610c9ef14", "rel": "self"}, {"href": "http://localhost/chassis/d716ede0-676b-4915-9cac-465610c9ef14", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/d716ede0-676b-4915-9cac-465610c9ef14/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d716ede0-676b-4915-9cac-465610c9ef14/nodes", "rel": "bookmark"}]]} GET /chassis/d716ede0-676b-4915-9cac-465610c9ef14 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58f45a01-054b-40bd-a914-a17e1d0e92fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d716ede0-676b-4915-9cac-465610c9ef14", "created_at": "2025-05-22T18:20:52.494933+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d716ede0-676b-4915-9cac-465610c9ef14", "rel": "self"}, {"href": "http://localhost/chassis/d716ede0-676b-4915-9cac-465610c9ef14", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/d716ede0-676b-4915-9cac-465610c9ef14/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d716ede0-676b-4915-9cac-465610c9ef14/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.137622s] ... 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-e281c8a3-6c20-45f4-b441-9f230bc86a21 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_driver.TestListDrivers.test_get_custom_fields_invalid_api_version [0.087811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-711d0f13-b498-4ba2-9dd5-0724aa17f2cd 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-43958bf5-78cf-489d-a3e8-cfeb6724e9dc 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_driver.TestListDrivers.test_get_one_custom_fields [0.077311s] ... 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-9e6c8482-d221-4f62-b074-6abc261ecc58 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.096037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-013267e3-99b5-4838-a82d-3bb4d485ba60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d6f28eb1-cb7e-4f5b-976f-9e254f1a6277", "created_at": "2025-05-22T18:20:52.582813+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277", "rel": "self"}, {"href": "http://foo/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277/nodes", "rel": "self"}, {"href": "http://foo/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277/nodes", "rel": "bookmark"}]]} GET /v1/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3d45ca5f-07e4-4e00-ac60-8f9eb067d7a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d6f28eb1-cb7e-4f5b-976f-9e254f1a6277", "created_at": "2025-05-22T18:20:52.582813+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277", "rel": "self"}, {"href": "http://foo/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277/nodes", "rel": "self"}, {"href": "http://foo/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277/nodes", "rel": "bookmark"}]]} GET /chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3609a128-06aa-4744-855b-8eecbc21a117 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d6f28eb1-cb7e-4f5b-976f-9e254f1a6277", "created_at": "2025-05-22T18:20:52.582813+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277", "rel": "self"}, {"href": "http://foo/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277/nodes", "rel": "self"}, {"href": "http://foo/chassis/d6f28eb1-cb7e-4f5b-976f-9e254f1a6277/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.122289s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23253737-7e59-4e68-8eef-45e2f0e67f75 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": "36ca0869-f9bd-4e07-bbfc-4ce7492730a8", "created_at": "2025-05-22T18:20:52.585300+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": "906b9750-6024-49b6-b4d2-9d3256ed0ff0", "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/36ca0869-f9bd-4e07-bbfc-4ce7492730a8", "rel": "self"}, {"href": "http://localhost/nodes/36ca0869-f9bd-4e07-bbfc-4ce7492730a8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/36ca0869-f9bd-4e07-bbfc-4ce7492730a8/ports", "rel": "self"}, {"href": "http://localhost/nodes/36ca0869-f9bd-4e07-bbfc-4ce7492730a8/ports", "rel": "bookmark"}]}, {"uuid": "92052ea2-0549-43fc-a8e1-1eb8b8ebfa52", "created_at": "2025-05-22T18:20:52.590846+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": "94eca9af-3bf4-4abc-bc0a-90a4b2a9ee55", "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/92052ea2-0549-43fc-a8e1-1eb8b8ebfa52", "rel": "self"}, {"href": "http://localhost/nodes/92052ea2-0549-43fc-a8e1-1eb8b8ebfa52", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/92052ea2-0549-43fc-a8e1-1eb8b8ebfa52/ports", "rel": "self"}, {"href": "http://localhost/nodes/92052ea2-0549-43fc-a8e1-1eb8b8ebfa52/ports", "rel": "bookmark"}]}, {"uuid": "4c5528b1-5f3a-4c50-8717-26fe0ebe770b", "created_at": "2025-05-22T18:20:52.592666+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": "759ada35-8938-4ef5-85af-2b002910c7fe", "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/4c5528b1-5f3a-4c50-8717-26fe0ebe770b", "rel": "self"}, {"href": "http://localhost/nodes/4c5528b1-5f3a-4c50-8717-26fe0ebe770b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4c5528b1-5f3a-4c50-8717-26fe0ebe770b/ports", "rel": "self"}, {"href": "http://localhost/nodes/4c5528b1-5f3a-4c50-8717-26fe0ebe770b/ports", "rel": "bookmark"}]}, {"uuid": "142b5737-72a8-4fbb-8880-fb94df0492f3", "created_at": "2025-05-22T18:20:52.594450+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": "dba8a8d2-1573-4748-9dff-68df050dbb3e", "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/142b5737-72a8-4fbb-8880-fb94df0492f3", "rel": "self"}, {"href": "http://localhost/nodes/142b5737-72a8-4fbb-8880-fb94df0492f3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/142b5737-72a8-4fbb-8880-fb94df0492f3/ports", "rel": "self"}, {"href": "http://localhost/nodes/142b5737-72a8-4fbb-8880-fb94df0492f3/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields [0.065263s] ... 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-4be538cf-7e6e-40e1-b0c1-7642711fcf32 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.104454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?instance_uuid=2edfd009-d6ba-4afa-8abc-62bb3badbca2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f1c42da-8268-4f62-bc56-60715e25aa24 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": "d8c72327-6448-45ba-b165-2d490c7e21a6", "created_at": "2025-05-22T18:20:52.695880+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": "2edfd009-d6ba-4afa-8abc-62bb3badbca2", "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/d8c72327-6448-45ba-b165-2d490c7e21a6", "rel": "self"}, {"href": "http://localhost/nodes/d8c72327-6448-45ba-b165-2d490c7e21a6", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/d8c72327-6448-45ba-b165-2d490c7e21a6/ports", "rel": "self"}, {"href": "http://localhost/nodes/d8c72327-6448-45ba-b165-2d490c7e21a6/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.055221s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bc87f2d5-c142-445e-bcf2-50d06655a4cb 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-9d186a1c-497c-4b78-bfe4-de4a3d3a5df3 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-24dfb1ba-35a1-4e4f-b12a-4bbea8f6e285 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.125110s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4215195d-2595-4589-8dab-6b0fa2d67c82 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": "01ac95e9-27b7-416c-bf02-b4b92799de43", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/01ac95e9-27b7-416c-bf02-b4b92799de43", "rel": "self"}, {"href": "http://localhost/chassis/01ac95e9-27b7-416c-bf02-b4b92799de43", "rel": "bookmark"}]}, {"uuid": "b8dd2e1b-1503-4a7f-8c5b-c7993377ca67", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b8dd2e1b-1503-4a7f-8c5b-c7993377ca67", "rel": "self"}, {"href": "http://localhost/chassis/b8dd2e1b-1503-4a7f-8c5b-c7993377ca67", "rel": "bookmark"}]}, {"uuid": "7cdd11a9-b86a-4723-8ebe-ff73dcb5d794", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/7cdd11a9-b86a-4723-8ebe-ff73dcb5d794", "rel": "self"}, {"href": "http://localhost/chassis/7cdd11a9-b86a-4723-8ebe-ff73dcb5d794", "rel": "bookmark"}]}, {"uuid": "5e6e38a8-d12c-41fc-a497-ca040fac9b6b", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/5e6e38a8-d12c-41fc-a497-ca040fac9b6b", "rel": "self"}, {"href": "http://localhost/chassis/5e6e38a8-d12c-41fc-a497-ca040fac9b6b", "rel": "bookmark"}]}, {"uuid": "64f34236-0bfe-47fb-8b2a-374f353b7ff5", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/64f34236-0bfe-47fb-8b2a-374f353b7ff5", "rel": "self"}, {"href": "http://localhost/chassis/64f34236-0bfe-47fb-8b2a-374f353b7ff5", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.251505s] ... 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-752b4580-edb3-4a07-8a92-754ec2022744 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-d364859b-91da-4d08-a6a6-5d30b84a203d 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': '2fa89123-36ee-4c62-9c66-c173647d0e1d', '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/2fa89123-36ee-4c62-9c66-c173647d0e1d Openstack-Request-Id: req-2238b0ba-6809-4c3e-a7dd-306a3009976e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "2fa89123-36ee-4c62-9c66-c173647d0e1d", "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/2fa89123-36ee-4c62-9c66-c173647d0e1d", "rel": "self"}, {"href": "http://localhost/nodes/2fa89123-36ee-4c62-9c66-c173647d0e1d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2fa89123-36ee-4c62-9c66-c173647d0e1d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2fa89123-36ee-4c62-9c66-c173647d0e1d/ports", "rel": "bookmark"}]} GET /v1/nodes/2fa89123-36ee-4c62-9c66-c173647d0e1d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a8887f2-8e20-4146-8adc-fa6c999b34e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "2fa89123-36ee-4c62-9c66-c173647d0e1d", "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/2fa89123-36ee-4c62-9c66-c173647d0e1d", "rel": "self"}, {"href": "http://localhost/nodes/2fa89123-36ee-4c62-9c66-c173647d0e1d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2fa89123-36ee-4c62-9c66-c173647d0e1d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2fa89123-36ee-4c62-9c66-c173647d0e1d/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty [0.070171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b9b4348-c849-4d9e-a9be-947f6c83e67e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.069980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b2900d0-9497-49be-ba98-4e4dc9b0ba32 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-bc28a815-3cc9-4e57-93ea-17cbc198f1dd 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-1ddc006f-6115-4d81-a627-2dec2e4b7306 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.063787s] ... 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-7ce1b253-8f16-4039-b6ca-d90c0dbb18dd 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"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.086192s] ... 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-7003fe44-d831-468a-bddd-3f819ae1c924 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found [0.139799s] ... 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-49c2fe86-537c-4ee7-b4de-db7588f76508 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.194325s] ... 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-d923f24d-f1dc-4e57-b35e-8af3d92a154b 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": "65a6d477-467a-42e1-b1fe-5c2ab2a929e7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/65a6d477-467a-42e1-b1fe-5c2ab2a929e7", "rel": "self"}, {"href": "http://localhost/nodes/65a6d477-467a-42e1-b1fe-5c2ab2a929e7", "rel": "bookmark"}]}, {"uuid": "fefcf709-9eb8-4281-baa9-84440ab04e3e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fefcf709-9eb8-4281-baa9-84440ab04e3e", "rel": "self"}, {"href": "http://localhost/nodes/fefcf709-9eb8-4281-baa9-84440ab04e3e", "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-5d701b5d-bb8e-4529-bbc5-53cfc433cbc1 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": "65a6d477-467a-42e1-b1fe-5c2ab2a929e7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/65a6d477-467a-42e1-b1fe-5c2ab2a929e7", "rel": "self"}, {"href": "http://localhost/nodes/65a6d477-467a-42e1-b1fe-5c2ab2a929e7", "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=65a6d477-467a-42e1-b1fe-5c2ab2a929e7"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.081854s] ... 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-8663c3c0-2458-492b-894c-6eb5dfcdbaba 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-48e825a2-0e54-4ea3-98a4-56d2a48dd38a 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-0f02bd69-dea7-433f-b65b-78f29bbb1a43 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"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.086436s] ... 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-28fb7376-82e9-4469-acb3-49b374c98a41 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}"} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.053353s] ... 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-4f4b89a3-dcb3-43ed-8a13-82666b8a64e1 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}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.093901s] ... 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-a84f1d7a-42c8-48bf-83db-bcd94082f403 X-Openstack-Ironic-Api-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_node.TestListNodes.test_get_automated_clean_fields [0.095277s] ... 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-a35cc779-93a4-4353-b98f-29b99817cc28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"automated_clean": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.057837s] ... 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-ff9db83d-e2ab-45fc-8a31-acef1d0ad253 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_node.TestPost.test_create_node_default_state_enroll [0.179525s] ... 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-a5b0b116-75d7-45eb-86fd-2a5daf2ae99b 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-22T18:20:53.061338+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-a9941193-5298-490e-93a1-cf207b813b5a 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-22T18:20:53.061338+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_empty [0.053346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3bbf9d83-048b-4672-a6e4-39cd2b1f95c2 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_node.TestListNodes.test_get_boot_device [0.088492s] ... 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-03130ddc-3a45-48b9-bb07-c24f192551e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"boot_device": "pxe", "persistent": true} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.127235s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c699d490-7ba7-492a-a6e2-1737c5094823 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-22T18:20:53.132532+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_inspection_rule.TestListInspectionRules.test_get_all [0.059694s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee7bb672-9ae1-4076-b6d3-0324ada5c2c1 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": "50c20e66-3f38-4d71-8620-1c8389a107ca", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/50c20e66-3f38-4d71-8620-1c8389a107ca", "rel": "self"}, {"href": "http://localhost/inspection/50c20e66-3f38-4d71-8620-1c8389a107ca", "rel": "bookmark"}]}, {"uuid": "a996df5a-14a8-4179-9339-cc8a084191f5", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/a996df5a-14a8-4179-9339-cc8a084191f5", "rel": "self"}, {"href": "http://localhost/inspection/a996df5a-14a8-4179-9339-cc8a084191f5", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all_invalid_api_version [0.044545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow inspection rules\"}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.079262s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/nodes WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-23277222-b21b-4dd5-bdab-3220f023b1ca X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.093418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b98d6a18-a124-460b-b8aa-f48db5b5b2eb 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} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.096920s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5914d7f2-1844-4ee9-a5e1-35beaea73bb9 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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none [0.238220s] ... 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-de92d459-7fe9-421b-8271-bf65e3735d29 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-22T18:20:53.266401+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-9d6df975-ec8d-4113-9c5d-fec43a87b23f 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-22T18:20:53.266401+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-2a29e3b2-6ef2-40c7-8570-2fe167ec30b0 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-22T18:20:53.266401+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.138251s] ... 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-d0582125-0895-4fef-a9d6-56e2ec545c8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.068982s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b497b9b8-8505-409e-8500-1e3ec677b141 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": "047d6e8e-2b82-4395-859f-ecdcf41e5054", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/047d6e8e-2b82-4395-859f-ecdcf41e5054", "rel": "self"}, {"href": "http://localhost/chassis/047d6e8e-2b82-4395-859f-ecdcf41e5054", "rel": "bookmark"}]}, {"uuid": "0e3f55f0-f51a-42e9-a559-24a7bd4b7a52", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/0e3f55f0-f51a-42e9-a559-24a7bd4b7a52", "rel": "self"}, {"href": "http://localhost/chassis/0e3f55f0-f51a-42e9-a559-24a7bd4b7a52", "rel": "bookmark"}]}, {"uuid": "cbc512cf-0daf-4d3e-b7aa-579c6650dff3", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/cbc512cf-0daf-4d3e-b7aa-579c6650dff3", "rel": "self"}, {"href": "http://localhost/chassis/cbc512cf-0daf-4d3e-b7aa-579c6650dff3", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.101598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-29f0f3d9-15ba-44f0-a63d-c50b91c49a89 X-Openstack-Ironic-Api-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-2b68205c-670a-4a35-939e-c03ef41b603a X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields [0.166629s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid,instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-209cf6ff-596d-4748-9ed6-418c66950def 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": "5f23b2da-28a5-4c5d-897d-a68f4d6885d7", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/5f23b2da-28a5-4c5d-897d-a68f4d6885d7", "rel": "self"}, {"href": "http://localhost/nodes/5f23b2da-28a5-4c5d-897d-a68f4d6885d7", "rel": "bookmark"}]}, {"uuid": "f715b53b-5924-488e-b6c8-5621cdaf8552", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/f715b53b-5924-488e-b6c8-5621cdaf8552", "rel": "self"}, {"href": "http://localhost/nodes/f715b53b-5924-488e-b6c8-5621cdaf8552", "rel": "bookmark"}]}, {"uuid": "ca9e79e2-a5ea-4418-a80e-71fb550437e3", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/ca9e79e2-a5ea-4418-a80e-71fb550437e3", "rel": "self"}, {"href": "http://localhost/nodes/ca9e79e2-a5ea-4418-a80e-71fb550437e3", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one [0.327459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules/76a562cb-420c-4194-9a65-dc4ea75a5c2f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-088b34d7-e830-4bd6-8d96-c52c4b4bead5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "76a562cb-420c-4194-9a65-dc4ea75a5c2f", "created_at": "2025-05-22T18:20:53.558768+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/76a562cb-420c-4194-9a65-dc4ea75a5c2f", "rel": "self"}, {"href": "http://localhost/inspection/76a562cb-420c-4194-9a65-dc4ea75a5c2f", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.104503s] ... 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-71f7f0ae-d6b6-4413-81f6-08b8067e38db 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-22T18:20:53.568128+00:00", "updated_at": "2025-05-22T18:20:53.608447+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-87f05a43-1c65-428a-b42d-203aa16a683d 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-22T18:20:53.568128+00:00", "updated_at": "2025-05-22T18:20:53.608447+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "bar2"}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one_invalid_api_version [0.059476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules/b19f721e-957d-4f1f-bad5-46e2e14b52e2 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\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.349848s] ... 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-3c8652c7-8711-44ea-bb7b-8f4ded03dcd3 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-22T18:20:53.603732+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-76454bbb-f87b-468c-a1c6-aefa993c8bbd 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-22T18:20:53.603732+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root [0.105087s] ... 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-d6de613c-c311-435d-9bec-f1426e32feb4 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-22T18:20:53.695057+00:00", "updated_at": "2025-05-22T18:20:53.720628+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_inspection_rule.TestListInspectionRules.test_get_rule_data [0.103283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'c6ad0a33-516e-4c55-adb6-e45d6414a010', '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/c6ad0a33-516e-4c55-adb6-e45d6414a010 Openstack-Request-Id: req-95021256-7157-4e40-afbc-f859cd642382 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c6ad0a33-516e-4c55-adb6-e45d6414a010", "created_at": "2025-05-22T18:20:53.708897+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/c6ad0a33-516e-4c55-adb6-e45d6414a010", "rel": "self"}, {"href": "http://localhost/inspection/c6ad0a33-516e-4c55-adb6-e45d6414a010", "rel": "bookmark"}]} GET /v1/inspection_rules/c6ad0a33-516e-4c55-adb6-e45d6414a010 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa3cd951-fde0-46ce-a10e-88d944161668 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c6ad0a33-516e-4c55-adb6-e45d6414a010", "created_at": "2025-05-22T18:20:53.708897+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/c6ad0a33-516e-4c55-adb6-e45d6414a010", "rel": "self"}, {"href": "http://localhost/inspection/c6ad0a33-516e-4c55-adb6-e45d6414a010", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields_as_list [0.196257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid&fields=instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73496e4a-60f4-4b2b-924d-3d0468af0469 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": "88c2523b-84e0-42d8-8ec8-bd1b57beccbe", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/88c2523b-84e0-42d8-8ec8-bd1b57beccbe", "rel": "self"}, {"href": "http://localhost/nodes/88c2523b-84e0-42d8-8ec8-bd1b57beccbe", "rel": "bookmark"}]}, {"uuid": "6a946595-c970-4f9a-8859-53cd0af4d899", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/6a946595-c970-4f9a-8859-53cd0af4d899", "rel": "self"}, {"href": "http://localhost/nodes/6a946595-c970-4f9a-8859-53cd0af4d899", "rel": "bookmark"}]}, {"uuid": "1eb35efe-8fc4-48c4-a71f-2ea9361d04e6", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1eb35efe-8fc4-48c4-a71f-2ea9361d04e6", "rel": "self"}, {"href": "http://localhost/nodes/1eb35efe-8fc4-48c4-a71f-2ea9361d04e6", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.068099s] ... 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-e809ccee-fcb2-4ed8-8981-502b1e24af11 X-Openstack-Ironic-Api-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_inspection_rule.TestListInspectionRules.test_get_sensitive_rule_hides_data [0.135454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '7df0e1fe-d4bb-438b-9b7a-51a9e5137329', '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/7df0e1fe-d4bb-438b-9b7a-51a9e5137329 Openstack-Request-Id: req-3cb29fea-3431-4309-b4fe-507633983802 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7df0e1fe-d4bb-438b-9b7a-51a9e5137329", "created_at": "2025-05-22T18:20:53.858683+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/7df0e1fe-d4bb-438b-9b7a-51a9e5137329", "rel": "self"}, {"href": "http://localhost/inspection/7df0e1fe-d4bb-438b-9b7a-51a9e5137329", "rel": "bookmark"}]} GET /v1/inspection_rules/7df0e1fe-d4bb-438b-9b7a-51a9e5137329 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2433124f-d2f6-4797-8c11-6ef9bc698fea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7df0e1fe-d4bb-438b-9b7a-51a9e5137329", "created_at": "2025-05-22T18:20:53.858683+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/7df0e1fe-d4bb-438b-9b7a-51a9e5137329", "rel": "self"}, {"href": "http://localhost/inspection/7df0e1fe-d4bb-438b-9b7a-51a9e5137329", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.113028s] ... 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-c324c097-1a66-4798-9c96-a4d6f8295034 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize [0.198969s] ... 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-67c55040-4860-4da0-b962-d8232606be78 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_list_hides_sensitive_data [0.084485s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': 'b1b8f257-4b78-45ab-8cee-2dd140318c4b', '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/b1b8f257-4b78-45ab-8cee-2dd140318c4b Openstack-Request-Id: req-9e8843b1-b527-4a51-bf2f-be17b509ff42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b1b8f257-4b78-45ab-8cee-2dd140318c4b", "created_at": "2025-05-22T18:20:53.934559+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/b1b8f257-4b78-45ab-8cee-2dd140318c4b", "rel": "self"}, {"href": "http://localhost/inspection/b1b8f257-4b78-45ab-8cee-2dd140318c4b", "rel": "bookmark"}]} POST /v1/inspection_rules WITH {'uuid': 'a2e287a2-0d85-4a6b-b0bd-763674ee1f5a', '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/a2e287a2-0d85-4a6b-b0bd-763674ee1f5a Openstack-Request-Id: req-b24213b3-1a2b-4e63-b41c-7ba6be4f92e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a2e287a2-0d85-4a6b-b0bd-763674ee1f5a", "created_at": "2025-05-22T18:20:53.952712+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/a2e287a2-0d85-4a6b-b0bd-763674ee1f5a", "rel": "self"}, {"href": "http://localhost/inspection/a2e287a2-0d85-4a6b-b0bd-763674ee1f5a", "rel": "bookmark"}]} GET /v1/inspection_rules?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab31633a-5701-4abf-b5cf-81e7c6f858e7 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": "b1b8f257-4b78-45ab-8cee-2dd140318c4b", "created_at": "2025-05-22T18:20:53.934559+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/b1b8f257-4b78-45ab-8cee-2dd140318c4b", "rel": "self"}, {"href": "http://localhost/inspection/b1b8f257-4b78-45ab-8cee-2dd140318c4b", "rel": "bookmark"}]}, {"uuid": "a2e287a2-0d85-4a6b-b0bd-763674ee1f5a", "created_at": "2025-05-22T18:20:53.952712+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/a2e287a2-0d85-4a6b-b0bd-763674ee1f5a", "rel": "self"}, {"href": "http://localhost/inspection/a2e287a2-0d85-4a6b-b0bd-763674ee1f5a", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_one [0.037213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f2e0613-9b93-46b6-b8b8-6a73f8c72544 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": "a90b3ce5-bf3b-40a1-95a6-e5a168198d5a", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/a90b3ce5-bf3b-40a1-95a6-e5a168198d5a", "rel": "self"}, {"href": "http://localhost/inspection/a90b3ce5-bf3b-40a1-95a6-e5a168198d5a", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova [0.243499s] ... 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-38d1f463-c18d-4c8b-b4f3-0b1dcbf757ac 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": "422cd56b-8f8e-47c9-be9a-068b721ff4ab", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "87e0f5b4-4433-4bb8-828a-706f8e97cfef", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/422cd56b-8f8e-47c9-be9a-068b721ff4ab", "rel": "self"}, {"href": "http://localhost/nodes/422cd56b-8f8e-47c9-be9a-068b721ff4ab", "rel": "bookmark"}]}, {"uuid": "317224ec-3f30-46fa-a07d-38de47d857bd", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "65f0fadc-e792-4719-8e80-b2885dfde3e2", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/317224ec-3f30-46fa-a07d-38de47d857bd", "rel": "self"}, {"href": "http://localhost/nodes/317224ec-3f30-46fa-a07d-38de47d857bd", "rel": "bookmark"}]}, {"uuid": "386ea7a4-e4a1-4eab-9f27-fca2cc41ef22", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "65ace638-e7fa-4a5e-ba36-716efb5ebc65", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/386ea7a4-e4a1-4eab-9f27-fca2cc41ef22", "rel": "self"}, {"href": "http://localhost/nodes/386ea7a4-e4a1-4eab-9f27-fca2cc41ef22", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node [0.045126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: 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_chassis.TestPatch.test_remove_multi [0.131848s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-730ccad0-84c8-4259-93fb-e33ae72911d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0a217d4b-bdb0-42ff-9128-2b82de683d4b", "created_at": "2025-05-22T18:20:53.977156+00:00", "updated_at": "2025-05-22T18:20:53.999070+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b", "rel": "self"}, {"href": "http://localhost/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b/nodes", "rel": "bookmark"}]]} GET /v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa5fcbb5-7efb-4dea-8d21-3515146f674b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0a217d4b-bdb0-42ff-9128-2b82de683d4b", "created_at": "2025-05-22T18:20:53.977156+00:00", "updated_at": "2025-05-22T18:20:53.999070+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b", "rel": "self"}, {"href": "http://localhost/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b/nodes", "rel": "bookmark"}]]} PATCH /v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a473fb1-1a43-40ec-bbaa-c81436fe4c95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0a217d4b-bdb0-42ff-9128-2b82de683d4b", "created_at": "2025-05-22T18:20:53.977156+00:00", "updated_at": "2025-05-22T18:20:54.041742+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b", "rel": "self"}, {"href": "http://localhost/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b/nodes", "rel": "bookmark"}]]} GET /v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-806ee6c0-bec1-461e-a048-9bff618f7acc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0a217d4b-bdb0-42ff-9128-2b82de683d4b", "created_at": "2025-05-22T18:20:53.977156+00:00", "updated_at": "2025-05-22T18:20:54.041742+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b", "rel": "self"}, {"href": "http://localhost/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0a217d4b-bdb0-42ff-9128-2b82de683d4b/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node_list [0.050024s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: 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.TestCheckCleanSteps.test__check_clean_steps_not_list [0.032357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: 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_chassis.TestPatch.test_remove_non_existent_property_fail [0.108605s] ... 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-4b52c404-160d-46c2-ba76-efda76a84979 X-Openstack-Ironic-Api-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 non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.033051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: 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.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.060674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.197601s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02361661-4264-4be9-a255-06f63f75feb0 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/c7989fe2-3f03-4c86-a7cf-f1f0b90b44f6", "rel": "self"}, {"href": "http://localhost/nodes/c7989fe2-3f03-4c86-a7cf-f1f0b90b44f6", "rel": "bookmark"}]}, {"name": null, "links": [{"href": "http://localhost/v1/nodes/112a216c-e5d1-4613-bc6f-3bf49594ce74", "rel": "self"}, {"href": "http://localhost/nodes/112a216c-e5d1-4613-bc6f-3bf49594ce74", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=112a216c-e5d1-4613-bc6f-3bf49594ce74"} {3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.101179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb WITH [{'path': '/description', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8c1c914-9302-4712-85c9-238aacf2f0a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb", "created_at": "2025-05-22T18:20:54.225781+00:00", "updated_at": "2025-05-22T18:20:54.236650+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb", "rel": "self"}, {"href": "http://localhost/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb/nodes", "rel": "self"}, {"href": "http://localhost/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb/nodes", "rel": "bookmark"}]]} GET /v1/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-42f41d24-aae9-4244-af48-88642ca7adf4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb", "created_at": "2025-05-22T18:20:54.225781+00:00", "updated_at": "2025-05-22T18:20:54.236650+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb", "rel": "self"}, {"href": "http://localhost/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb/nodes", "rel": "self"}, {"href": "http://localhost/chassis/cb5549c3-ee77-4e02-8b47-6ec8ee5b21bb/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.044039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off [0.370450s] ... 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-18327e81-4566-44f9-9618-fb285d884945 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-22T18:20:54.206357+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-61f501a0-f005-4071-a9e4-d9f377ff74d5 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-22T18:20:54.206357+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.039274s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: 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_chassis.TestPatch.test_remove_uuid [0.075319s] ... 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-ce474531-933d-4980-8d1b-f3afa4e470b5 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.031148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field [0.136986s] ... 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-457d227b-dcd4-41e9-88f1-348f7518ff54 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"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.064477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: 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_chassis.TestPatch.test_replace_multi [0.099569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3eafae0b-b35a-4176-afe7-3ddbc6b2dee0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "750ddfcf-03fa-4961-b7dc-04812e5c7d1b", "created_at": "2025-05-22T18:20:54.398576+00:00", "updated_at": "2025-05-22T18:20:54.419139+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b", "rel": "self"}, {"href": "http://localhost/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b/nodes", "rel": "bookmark"}]]} GET /v1/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c877bae-a31d-45cb-8201-e3b5715d98e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "750ddfcf-03fa-4961-b7dc-04812e5c7d1b", "created_at": "2025-05-22T18:20:54.398576+00:00", "updated_at": "2025-05-22T18:20:54.419139+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b", "rel": "self"}, {"href": "http://localhost/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/750ddfcf-03fa-4961-b7dc-04812e5c7d1b/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.033738s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: 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.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.030814s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off_old_api_version [0.230438s] ... 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-1b28b5fc-eb9c-456a-ab89-0af7acaf0272 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.150076s] ... 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-a89cee9a-0296-41ef-89c6-d08a14a4959b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.067927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/jsonschema/validators.py:1104: 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_chassis.TestPatch.test_replace_singular [0.112852s] ... 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-7ccf4e04-dd37-483a-a1ab-a8d8de49939e 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-22T18:20:54.498539+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-5ea48b1b-5548-47b6-b812-1802f51ed25c 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-22T18:20:54.498539+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"}]]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test_check__check_steps_wrappers [0.026818s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated [0.054277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-43152517-7a0a-4231-8385-05142d70c19e X-Openstack-Ironic-Api-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_chassis.TestPatch.test_update_error [0.082839s] ... 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-fd97edd2-93d9-4d16-84ba-dd9951ef9fdc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.145707s] ... 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-242c69aa-0b7d-4094-9be2-b11a946934ef 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.059905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 204 No Content Openstack-Request-Id: req-684abd93-ca14-482f-bf65-74e16e60f9f1 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_chassis.TestPatch.test_update_not_found [0.077150s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/d0ab605c-4e8f-44f0-b0a0-9616bf511501 WITH [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3600e5ba-8cc2-4c37-82f6-162dfe110309 X-Openstack-Ironic-Api-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 d0ab605c-4e8f-44f0-b0a0-9616bf511501 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.056424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.1 GOT Response: 204 No Content Openstack-Request-Id: req-f115849e-4c05-4d81-b202-571ec552e034 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.TestPost.test_create_node_doesnt_contain_id [0.245333s] ... 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-25fc63f3-f9d9-4320-a613-634bd48a0b78 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-22T18:20:54.727687+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-87430c27-f589-426f-a7c5-9f8897b9c794 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-22T18:20:54.727687+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.TestDelete.test_delete_node_by_name_unsupported [0.048348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-073f79d4-fd67-4f16-83c5-9afd294fbd05 X-Openstack-Ironic-Api-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_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.145540s] ... 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-694e2442-b1ba-4f8e-ad69-28b2d4a6dd6d 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 [0.113203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '147dd10b-b30b-412c-ae0b-0f760e7a9663', '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/147dd10b-b30b-412c-ae0b-0f760e7a9663 Openstack-Request-Id: req-b034a17d-4201-4758-9e4d-9e6abfb5691e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "147dd10b-b30b-412c-ae0b-0f760e7a9663", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/147dd10b-b30b-412c-ae0b-0f760e7a9663", "rel": "self"}, {"href": "http://localhost/deploy_templates/147dd10b-b30b-412c-ae0b-0f760e7a9663", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/147dd10b-b30b-412c-ae0b-0f760e7a9663 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bdd66ca7-76be-4a7a-8e32-3a108e2a1592 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "147dd10b-b30b-412c-ae0b-0f760e7a9663", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/147dd10b-b30b-412c-ae0b-0f760e7a9663", "rel": "self"}, {"href": "http://localhost/deploy_templates/147dd10b-b30b-412c-ae0b-0f760e7a9663", "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.047136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.json GOT Response: 204 No Content Openstack-Request-Id: req-0dafb32f-4850-4e0d-9b48-d0b5f261b0c3 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_maintenance_mode [0.049399s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-154e4aa9-e19a-497b-8659-d0706282e170 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_deploy_template.TestPost.test_create_complex_step_args [0.087021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'd2276d57-58d3-4a96-85f8-f35082f90d6f', '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/d2276d57-58d3-4a96-85f8-f35082f90d6f Openstack-Request-Id: req-d9fe8b0d-e302-4e7f-a7cc-832bce75db25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d2276d57-58d3-4a96-85f8-f35082f90d6f", "created_at": "2025-05-22T18:20:54.909163+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d2276d57-58d3-4a96-85f8-f35082f90d6f", "rel": "self"}, {"href": "http://localhost/deploy_templates/d2276d57-58d3-4a96-85f8-f35082f90d6f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.056767s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-e86d285e-98e9-4e2e-83bb-f5737415be31 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.TestPost.test_create_node_explicit_default_conductor_group [0.190447s] ... 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-a2c1ad15-2aed-4a49-95c2-9ff80c930440 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-22T18:20:54.925826+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-36c5decc-51da-4d81-ac8c-836da196aea5 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-22T18:20:54.925826+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.TestDelete.test_delete_node_not_found [0.043325s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1a325100-4e18-41e4-8a45-81b96d0901bf X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information [0.167854s] ... 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-6f1425b2-a53b-4d4d-83f4-bf60af8cdb48 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"}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.034344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6fd3218e-40da-48b5-917a-b14d30da8317 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.118597s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'd582fad5-7f83-45a0-baf4-67522a5ef48d', '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/d582fad5-7f83-45a0-baf4-67522a5ef48d Openstack-Request-Id: req-8a87d47b-2e92-4be6-b055-af5fa618c95b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d582fad5-7f83-45a0-baf4-67522a5ef48d", "created_at": "2025-05-22T18:20:55.013053+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d582fad5-7f83-45a0-baf4-67522a5ef48d", "rel": "self"}, {"href": "http://localhost/deploy_templates/d582fad5-7f83-45a0-baf4-67522a5ef48d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/d582fad5-7f83-45a0-baf4-67522a5ef48d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ffd80dce-8043-49cf-8f1f-3c60c15c925c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d582fad5-7f83-45a0-baf4-67522a5ef48d", "created_at": "2025-05-22T18:20:55.013053+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d582fad5-7f83-45a0-baf4-67522a5ef48d", "rel": "self"}, {"href": "http://localhost/deploy_templates/d582fad5-7f83-45a0-baf4-67522a5ef48d", "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_not_found_by_name_unsupported [0.058215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d6840140-ec45-46df-820e-7b25b6388416 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.085450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '84321d68-8dae-46e5-a7db-85c5bcf0e080', '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-9b316a88-4186-4f70-944b-d4e4b7184c26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.147291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/states/console WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ffea01a-0d85-4db1-bf41-3cf34219f371 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"}} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface [0.184210s] ... 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-4de615a4-be13-4bae-bbd6-25a4461c1a4a 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-b7a8d502-a300-4fd0-a1ca-1417c8016188 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource [0.079587s] ... 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-8f70ccd3-ef79-4705-9bdb-353960f3b3b6 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.TestDelete.test_delete_ports_subresource [0.048218s] ... 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-f09c8040-812b-462e-a3df-90fa7af4df4c X-Openstack-Ironic-Api-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_deploy_template.TestPost.test_create_generate_uuid [0.105487s] ... 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/69cb9d6b-7def-4945-b6b0-c92591dcf365 Openstack-Request-Id: req-072a694f-d734-4deb-9fe0-6516c121e576 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "69cb9d6b-7def-4945-b6b0-c92591dcf365", "created_at": "2025-05-22T18:20:55.208761+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/69cb9d6b-7def-4945-b6b0-c92591dcf365", "rel": "self"}, {"href": "http://localhost/deploy_templates/69cb9d6b-7def-4945-b6b0-c92591dcf365", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/69cb9d6b-7def-4945-b6b0-c92591dcf365 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-712b6f72-df59-4c91-97e7-a2bd222eb237 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "69cb9d6b-7def-4945-b6b0-c92591dcf365", "created_at": "2025-05-22T18:20:55.208761+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/69cb9d6b-7def-4945-b6b0-c92591dcf365", "rel": "self"}, {"href": "http://localhost/deploy_templates/69cb9d6b-7def-4945-b6b0-c92591dcf365", "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_ports_subresource_no_port_id [0.033380s] ... 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-f6f5ebae-3dc7-47e7-b094-9dd9a4d22985 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.136708s] ... 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-9304953f-07c5-465d-9ca0-3b760843a658 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_invalid_api_version [0.082374s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9df2aa95-eae4-4f06-81a1-1dedfe034023', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.074715s] ... 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-095b2d8a-8e55-4f2c-8cce-39cee1ed355c X-Openstack-Ironic-Api-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.TestPost.test_create_node_explicit_resource_class [0.210342s] ... 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-f4d0d389-fd22-4a43-85ad-b0ab35538849 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-22T18:20:55.334753+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-33efd544-de15-4240-89ae-d49e142d8543 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-22T18:20:55.334753+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.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.060774s] ... 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-81c2b681-6fd2-408f-b7d3-1c107d392d6b X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.139362s] ... 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-2e267bb4-4c93-4b8a-9197-011e50e51edc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.051655s] ... 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-7c847286-7958-4952-ab9f-08083012fd2b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.090474s] ... 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-9c2539aa-15d9-4c51-89c1-09a07840eae4 X-Openstack-Ironic-Api-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.TestNodeFirmwareComponent.test_get_all_firmware_components [0.113981s] ... 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-7afdcffb-3140-42f6-be3a-6b1951e77b86 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-22T18:20:55.506626+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-22T18:20:55.502017+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.184201s] ... 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-244bfb5e-72b5-4a9c-bc77-5e04cf93df31 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-2f617793-cc03-4524-b65d-9788dedb5477 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_in terface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields [0.085342s] ... 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-d1c0b0a7-a454-4d9d-9f7b-456a745d854b X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_wrong_version_get_all_firmware_components_old_version [0.138134s] ... 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.TestListNodes.test_get_description_field [0.095430s] ... 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-6331b563-4faf-489d-b94a-0013686b0403 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_invalid_field_empty_steps [0.433929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '0a067aa7-bc0a-44e6-9517-af3460e71492', 'steps': [], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-41cc9e2f-32cd-4e3a-886c-576779807079 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_disable_power_off_fields [0.121458s] ... 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-674c6651-008f-49fd-affe-229a4c1d5fee 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.082006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '55b909b1-791e-4136-ba21-7cf726a2be8c', '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-82e630ad-9489-40f5-bae7-2eabd781dac1 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_disabled_bios_boot_mode [0.288273s] ... 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-09e0eec7-2d11-4434-b086-03dbb2f70893 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.069466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'd687cd05-c49c-4a5e-abf7-53d77ebdbc2e', '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-c3d0fe6a-c7e4-4f6f-8f1a-f5eb5b27ac1f X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_disabled_uefi_boot_mode [0.072566s] ... 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-1c05d8e6-6748-478b-8b59-3fc1d12129f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state [0.113769s] ... 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-1b3a2615-ea4d-4957-8c34-ceb6b4be4791 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"state": "on"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_invalid_boot_mode [0.045369s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.086573s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 42, 'uuid': '5fac5652-5400-4707-b05d-a8902c6cc8c1', '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-1cda9079-8b68-46e8-ab19-c7d7018f4f65 X-Openstack-Ironic-Api-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_node.TestPost.test_create_node_invalid_bios_interface [0.069154s] ... 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-7d8a1848-2105-44dc-9113-96f3afc44c31 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.bios' entrypoint: foo. Valid interfaces are ['fake', 'no-bios'].\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported [0.097193s] ... 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-7f3a85a6-6d0e-436b-aa08-4fce4c30ecdf X-Openstack-Ironic-Api-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.TestNodeParentNodePatch.test_node_add_parent [0.345616s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/42fa95ae-c0e8-467a-ac18-a7c2989d48b0 WITH [{'path': '/parent_node', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8441d042-e51a-4a2e-8890-90b91d102983 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-22T18:20:55.797514+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_deploy_template.TestPost.test_create_invalid_field_name_none [0.074086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': None, 'uuid': '42c69ab3-d1f0-46f2-b62d-10d3a45d82eb', '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-8672a6fe-986d-4d69-9688-e9ca18aedb71 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis [0.074786s] ... 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-1863c26a-9a95-4f89-a4e7-dcda83230b3e X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning [0.101136s] ... 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-d48f5037-0a00-4d9a-8d4e-8c5954eb1a4f 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_deploy_template.TestPost.test_create_invalid_field_steps [0.079668s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'f4d4b814-a2a3-4813-b35e-589b5c3af246', 'steps': {}, 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-47fb75e0-5019-4381-a3a9-9797d24ef71f X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.072122s] ... 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-f35628d1-57b8-427a-8fb4-7dee98f91253 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_fail_wrong_version [0.163532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6fde1e02-06a7-454e-93fc-1ef5cd761ce0 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-3c832026-7645-4278-8d20-5e6267cad46c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.093215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'e8379c93-f995-4718-a022-866ad7f3d00a', '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-3448e836-8fad-47f2-9c0b-d85f5aa9cbbd X-Openstack-Ironic-Api-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_node.TestListNodes.test_get_lessee_field [0.100052s] ... 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-84890d6f-3e54-41fd-b485-6c127396056e 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.103206s] ... 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-8e4043e6-e475-4518-a30c-fa25c3a57c0a X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields [0.106118s] ... 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-5eac2e5f-07af-4290-8aa2-773f39aa626c 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_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.121596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '79366f61-3aaa-4f77-a141-980389c05cf5', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b438d252-d8e2-4816-99f5-6e7515d8992b X-Openstack-Ironic-Api-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_node.TestPost.test_create_node_invalid_storage_interface [0.109131s] ... 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-9f3ed57d-7be4-458b-bb8f-b3a4b4852e2f X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.126859s] ... 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-c3df9b47-2a18-477e-8de1-92badf9a6f7c 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.116973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '84f051ff-a4b2-4cb2-828e-a0bf16576d9e', '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-6bf5982e-b62d-4657-a53c-bdce71e9e049 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee [0.144289s] ... 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-666eddf8-3b38-408e-a5d4-d253bf3b5051 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-22T18:20:56.517167+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-fc6a1b75-916b-4bab-a5e8-f2bb7558cc68 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-22T18:20:56.517167+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_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.110535s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b6e09df6-b1c7-46da-9f30-fc5a6713f717', '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-c1fe026c-10a2-41dd-8096-46b36151915d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_not_uuid [0.384923s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6a6a0284-6da0-495f-bf54-85c431d5dd65 WITH [{'path': '/parent_node', 'value': 'djarin', 'op': 'add'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f735a68e-2c63-4dc0-b855-4050b2f66338 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.InterfaceError) Error binding parameter 0 - probably unsupported type.\\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/rvf5)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version [0.072437s] ... 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-52f50a7f-2ee6-4722-947d-0dd981f8418a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.192771s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cae93901-1b8c-4e9f-b60c-de9c9aeb754d 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-4f89e95b-6ae1-44fa-8239-058bafd68217 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": "96c99d78-a691-4ce9-96f5-25a6d583ed97", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/96c99d78-a691-4ce9-96f5-25a6d583ed97", "rel": "self"}, {"href": "http://localhost/nodes/96c99d78-a691-4ce9-96f5-25a6d583ed97", "rel": "bookmark"}]}, {"uuid": "11dbe2e9-0032-41b2-9c3e-4d9a79a7082b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/11dbe2e9-0032-41b2-9c3e-4d9a79a7082b", "rel": "self"}, {"href": "http://localhost/nodes/11dbe2e9-0032-41b2-9c3e-4d9a79a7082b", "rel": "bookmark"}]}]} GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f42d6f79-7d9c-4d0e-a6b5-99ce7fb1715f 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": "11dbe2e9-0032-41b2-9c3e-4d9a79a7082b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/11dbe2e9-0032-41b2-9c3e-4d9a79a7082b", "rel": "self"}, {"href": "http://localhost/nodes/11dbe2e9-0032-41b2-9c3e-4d9a79a7082b", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.081067s] ... 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-5ae02d61-c6c7-47dc-b8ce-5d210f2361c0 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.139975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9c2de726-bd41-4584-a820-62fc6036f06f', '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-4c0a8359-ca4f-4425-bd29-b9b4134580fd X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.105191s] ... 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-21b7a4dd-cf51-4405-bda4-fa8f1c31ac69 X-Openstack-Ironic-Api-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_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.125743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '07eab020-f6b7-48de-9441-63df5250f1aa', '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-df68b9e0-8cc4-4c47-9b79-48d56ef41166 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.190994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c208535-bf00-48b2-a894-e3dac98fca16 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": "0c145c9f-7a5b-4aba-8f1d-d4b230c8012a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a", "rel": "self"}, {"href": "http://localhost/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a", "rel": "bookmark"}]}]} GET /v1/nodes?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d089b09-88f5-42b8-ad37-864fd8897a7e 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": "ab7fac0d-bb60-47a0-9acd-4a44d892ea0c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c", "rel": "self"}, {"href": "http://localhost/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34aaab6c-4821-46b9-8ddd-a3003784174d 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": "0c145c9f-7a5b-4aba-8f1d-d4b230c8012a", "created_at": "2025-05-22T18:20:56.750998+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/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a", "rel": "self"}, {"href": "http://localhost/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a/ports", "rel": "self"}, {"href": "http://localhost/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a/states", "rel": "self"}, {"href": "http://localhost/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a/volume", "rel": "self"}, {"href": "http://localhost/nodes/0c145c9f-7a5b-4aba-8f1d-d4b230c8012a/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6574a14-0b1a-417d-9 ffb-7f70b6d6fe4e 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": "ab7fac0d-bb60-47a0-9acd-4a44d892ea0c", "created_at": "2025-05-22T18:20:56.761496+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/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c", "rel": "self"}, {"href": "http://localhost/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c/ports", "rel": "self"}, {"href": "http://localhost/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c/states", "rel": "self"}, {"href": "http://localhost/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c/volume", "rel": "self"}, {"href": "http://localhost/nodes/ab7fac0d-bb60-47a0-9acd-4a44d892ea0c/volume", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_remove_parent [0.277124s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7905d16d-e9d4-4469-99b3-5f1a72ccc613 WITH [{'path': '/parent_node', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-daf3b1e5-47c7-4323-9096-dc885d604a81 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-22T18:20:56.694672+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_node.TestPost.test_create_node_network_interface [0.137274s] ... 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-bdf22a62-e465-426b-9fd1-90c11ec8c753 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-22T18:20:56.906076+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-98732854-111a-417a-94c7-1640a3d43bec 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-22T18:20:56.906076+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.079211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e22ceec0-08ab-4372-9680-95293ceebd9c 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-8c0566ca-e90d-4d24-91d4-3f18f630bee7 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.114660s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '78075d77-b0ea-4373-940b-25ff1e8c497b', '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-1771346e-0c5b-4235-ab20-3988941e66bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.122346s] ... 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-b5b851dc-f011-4b61-8b23-1c6867629c60 X-Openstack-Ironic-Api-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_deploy_template.TestPost.test_create_invalid_step_field_step [0.106631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '8553c17a-1083-4a73-9a26-87771112a8cf', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-47a8310f-e880-4cd6-928e-aefb5a115fa5 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.138938s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19e44122-b67f-4f7d-9a08-5fcdf4083c75 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-9450efc1-ef47-426a-bced-7bfb3027f115 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-0fdccfc5-239f-4d98-bc7b-d5edd35fcaa0 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_named_parent_node_succeeds [0.250229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '2464b008-3799-4e8a-bea3-ec6fbcfe0815', '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/2464b008-3799-4e8a-bea3-ec6fbcfe0815 Openstack-Request-Id: req-65167a48-d1c1-4319-94b4-69cd9fee6c8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "2464b008-3799-4e8a-bea3-ec6fbcfe0815", "created_at": "2025-05-22T18:20:57.104424+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/2464b008-3799-4e8a-bea3-ec6fbcfe0815", "rel": "self"}, {"href": "http://localhost/nodes/2464b008-3799-4e8a-bea3-ec6fbcfe0815", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2464b008-3799-4e8a-bea3-ec6fbcfe0815/ports", "rel": "self"}, {"href": "http://localhost/nodes/2464b008-3799-4e8a-bea3-ec6fbcfe0815/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2464b008-3799-4e8a-bea3-ec6fbcfe0815/states", "rel": "self"}, {"href": "http://localhost/nodes/2464b008-3799-4e8a-bea3-ec6fbcfe0815/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2464b008-3799-4e8a-bea3-ec6fbcfe0815/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2464b008-3799-4e8a-bea3-ec6fbcfe0815/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2464b008-3799-4e8a-bea3-ec6fbcfe0815/volume", "rel": "self"}, {"href": "http://localhost/nodes/2464b008-3799-4e8a-bea3-ec6fbcfe0815/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.072024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c0845acc-9288-4802-b0a0-b7dcdf562c4f 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid [0.103896s] ... 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-69b9653f-bc26-4e65-9803-0953e196275a 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-22T18:20:57.157167+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.119501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'd03920f8-ef50-4a3f-aa90-7a5b5a8a2947', '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/d03920f8-ef50-4a3f-aa90-7a5b5a8a2947 Openstack-Request-Id: req-97d18081-4a60-420b-bf6f-f5a938c2d3a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d03920f8-ef50-4a3f-aa90-7a5b5a8a2947", "created_at": "2025-05-22T18:20:57.192072+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d03920f8-ef50-4a3f-aa90-7a5b5a8a2947", "rel": "self"}, {"href": "http://localhost/deploy_templates/d03920f8-ef50-4a3f-aa90-7a5b5a8a2947", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.115224s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?description_contains=cat WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9af7fb32-4be9-4711-b938-a3321a523356 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": "c40034b8-8cb0-4b4c-b158-8ad74c7b3762", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c40034b8-8cb0-4b4c-b158-8ad74c7b3762", "rel": "self"}, {"href": "http://localhost/nodes/c40034b8-8cb0-4b4c-b158-8ad74c7b3762", "rel": "bookmark"}]}]} GET /v1/nodes?description_contains=dog WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5ab9609-ea0e-4ba4-bc24-055460223e8e 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": "0235bd38-b9b7-464d-b0a9-6a98c2831369", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/0235bd38-b9b7-464d-b0a9-6a98c2831369", "rel": "self"}, {"href": "http://localhost/nodes/0235bd38-b9b7-464d-b0a9-6a98c2831369", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class [0.110081s] ... 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-95c0621e-6617-480c-b331-9fd93ea5f02a 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-22T18:20:57.255030+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-6d80e305-c457-467b-a4b5-e34e86488153 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-22T18:20:57.255030+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.122343s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'not-a-trait', 'uuid': 'efc1593a-bc8b-4b1a-bc96-d19b3e01cc63', '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-d4dece3b-db81-4345-aec1-5dcdcb2d96d5 X-Openstack-Ironic-Api-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_node.TestPost.test_create_node_no_mandatory_field_driver [0.075395s] ... 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-f5f32c75-9673-4ac4-b4b5-a5c2ac6381f3 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.090575s] ... 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-5619767c-a0e6-4723-8518-d02912d7a7e4 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-22T18:20:57.428168+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-d36e6130-5159-48af-b32a-2298daa77303 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-22T18:20:57.428168+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": n ull, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "cowsay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.142411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'beff8b96-e354-4ba4-af7b-7312b65e3771', '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-0fa4b788-bb00-467e-bf8a-349ce24ee356 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.065984s] ... 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-abd44fb9-a121-4b4b-922d-32278a23a515 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_deploy_template.TestPost.test_create_no_mandatory_field_name [0.102185s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'uuid': 'da801f97-5151-43c1-95b3-ac8774186f5a', '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-6ef4bf0d-7dfc-46e3-a096-4fc3e8fbb2d0 X-Openstack-Ironic-Api-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.TestNodeParentNodePost.test_create_node_with_parent_node [0.481864s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '376e5df2-ff1d-4a16-a8af-de081faf472c', '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/376e5df2-ff1d-4a16-a8af-de081faf472c Openstack-Request-Id: req-197eff91-34b5-4340-a9c9-6faefb644e02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "376e5df2-ff1d-4a16-a8af-de081faf472c", "created_at": "2025-05-22T18:20:57.579559+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/376e5df2-ff1d-4a16-a8af-de081faf472c", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/ports", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/states", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/volume", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/volume", "rel": "bookmark"}]} GET /v1/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d540502-6646-4f48-b5c5-163d26d6b1fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "376e5df2-ff1d-4a16-a8af-de081faf472c", "created_at": "2025-05-22T18:20:57.579559+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/376e5df2-ff1d-4a16-a8af-de081faf472c", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/ports", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/states", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/volume", "rel": "self"}, {"href": "http://localhost/nodes/376e5df2-ff1d-4a16-a8af-de081faf472c/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope [0.099363s] ... 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-c341e762-8818-486c-aad8-0fb37abf74f8 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-22T18:20:57.592943+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-3c7f26a5-0149-4be6-901c-a8adbb51e002 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-22T18:20:57.592943+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.TestNodeParentNodePost.test_create_node_with_parent_node_fail_wrong_version [0.070071s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': 'c8ad0d07-404f-465d-900d-6dbf3b737941', '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-c1210f69-7ce4-4097-a993-16dac36ac2c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.115039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'af5335b0-1dd8-4e58-8625-d9cd9112e31b', 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ea7387d2-c982-4140-bd67-04d8d422afb4 X-Openstack-Ironic-Api-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_node.TestPost.test_create_node_owner_system_scope [0.119925s] ... 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-9833f2a3-b4c6-4237-af28-732e0f248286 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-22T18:20:57.705758+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-e904f02d-9b01-41f5-bbac-f3fa074cf64f 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-22T18:20:57.705758+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard [0.104231s] ... 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-31780b23-a704-4d2a-8fa5-cb371021b75b 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-22T18:20:57.718933+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_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.120723s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '3ee87ab6-ff88-44fc-b78a-2f99b4e2e3b9', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f0f91a7e-516b-4199-a921-adb95f5c3b36 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.081716s] ... 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-5fb0c7df-b148-466a-86fb-a8def47c60c3 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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard_fail_wrong_version [0.074360s] ... 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-7393cc61-bdaf-49db-9b34-9835badaebf4 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.TestListNodes.test_get_nodes_by_driver [0.642320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=ipmi WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9840e7c9-4bf7-47c1-9beb-cf772408d84e 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": "cd61e3c8-67a3-4a10-87b1-4a4ec864e692", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cd61e3c8-67a3-4a10-87b1-4a4ec864e692", "rel": "self"}, {"href": "http://localhost/nodes/cd61e3c8-67a3-4a10-87b1-4a4ec864e692", "rel": "bookmark"}]}]} GET /v1/nodes?driver=fake-hardware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a1e4294-ce5a-44d0-94c4-dbf116f90935 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": "a03e6d1f-380b-4eaa-b11e-1716d9903651", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a03e6d1f-380b-4eaa-b11e-1716d9903651", "rel": "self"}, {"href": "http://localhost/nodes/a03e6d1f-380b-4eaa-b11e-1716d9903651", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.113919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9b84c986-80b4-4579-8382-3c294e3b6169', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0523423c-134b-4f81-b57c-9d136d1a341a X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard [0.102937s] ... 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-1dca4e17-9397-44f2-9bcf-3b8937ae6321 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-22T18:20:57.947536+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-4f014be5-71bf-48c8-94e4-1cb4a3dfd35e 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-22T18:20:57.947536+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.106851s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4ea0e917-578a-4afe-b9f6-0bafbcbdefe9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard_fail_wrong_version [0.065104s] ... 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-a6c5ceb6-47b1-4b16-a8f3-f73cb9d3d6d0 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_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.116362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '02d1ca2c-c6e2-45f8-b8f0-7dbf927ae482', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-07987615-eafb-4808-b685-a53431ece346 X-Openstack-Ironic-Api-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_port.TestDelete.test_delete_port_byaddress [0.041226s] ... 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-679ef5d0-09e9-4fe8-bffe-952c8a518ced X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_uuid: 52:54:00:cf:2d:31\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.264627s] ... 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-ead38f3b-4c00-4b6e-86e8-941ef9defa6e 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-bcecbcee-c8a1-4e6c-a7c3-75b8bb69eb1e 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-3bb0871c-4a47-4b6e-b580-8f4dffdee478 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-1de76512-c72c-41b6-8271-d094695bf072 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-88e5348d-3dec-4cf7-a747-4df17af39f97 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-fdc0d91d-af1c-468f-9adc-d69cac71b3e6 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_port.TestDelete.test_delete_port_byid [0.055233s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-bef7096b-3866-4b96-884d-6d08c9d86d62 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_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.126654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '89314c67-7a4b-4dd4-8359-fe753e70bc4b', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-25ea12da-747c-4a19-8a42-26258d4aa2f3 X-Openstack-Ironic-Api-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_port.TestDelete.test_delete_port_node_locked [0.064996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-8240291e-4792-4564-850e-aec107f9247a X-Openstack-Ironic-Api-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.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.049816s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/c5444240-9b2d-4d0c-9eab-bf2d5999037a GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-85e95ea2-b031-4e8a-820d-110ad7a43f9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.243006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36ce975a-c814-408c-ada2-2c1f2071330a 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": "a8aeb18e-8d80-46dd-aab4-3a422ad5b87a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a", "rel": "self"}, {"href": "http://localhost/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a", "rel": "bookmark"}]}]} GET /v1/nodes?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b3a979a9-9d4c-4248-9137-90ecab7544f9 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": "6fb38c7f-105b-406d-8057-027259e61d5e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6fb38c7f-105b-406d-8057-027259e61d5e", "rel": "self"}, {"href": "http://localhost/nodes/6fb38c7f-105b-406d-8057-027259e61d5e", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3167b6f7-da27-41aa-99e7-0b731a1eb265 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": "a8aeb18e-8d80-46dd-aab4-3a422ad5b87a", "created_at": "2025-05-22T18:20:58.133995+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/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a", "rel": "self"}, {"href": "http://localhost/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a/ports", "rel": "self"}, {"href": "http://localhost/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a/states", "rel": "self"}, {"href": "http://localhost/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a/volume", "rel": "self"}, {"href": "http://localhost/nodes/a8aeb18e-8d80-46dd-aab4-3a422ad5b87a/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2113407d-e44f-4537-a16b-67beafd508fb 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": "6fb38c7f-105b-406d-8057-027259e61d5e", "created_at": "2025-05-22T18:20:58.141075+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/6fb38c7f-105b-406d-8057-027259e61d5e", "rel": "self"}, {"href": "http://localhost/nodes/6fb38c7f-105b-406d-8057-027259e61d5e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6fb38c7f-105b-406d-8057-027259e61d5e/ports", "rel": "self"}, {"href": "http://localhost/nodes/6fb38c7f-105b-406d-8057-027259e61d5e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6fb38c7f-105b-406d-8057-027259e61d5e/states", "rel": "self"}, {"href": "http://localhost/nodes/6fb38c7f-105b-406d-8057-027259e61d5e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6fb38c7f-105b-406d-8057-027259e61d5e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6fb38c7f-105b-406d-8057-027259e61d5e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6fb38c7f-105b-406d-8057-027259e61d5e/volume", "rel": "self"}, {"href": "http://localhost/nodes/6fb38c7f-105b-406d-8057-027259e61d5e/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.105978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'HW_CPU_X86_VMX', 'uuid': 'b1ecc47a-665d-4089-89a4-48a137742d95', '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/b1ecc47a-665d-4089-89a4-48a137742d95 Openstack-Request-Id: req-b1f036d0-f1dd-440a-8a80-db4c48969f96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b1ecc47a-665d-4089-89a4-48a137742d95", "created_at": "2025-05-22T18:20:58.259758+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b1ecc47a-665d-4089-89a4-48a137742d95", "rel": "self"}, {"href": "http://localhost/deploy_templates/b1ecc47a-665d-4089-89a4-48a137742d95", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.224242s] ... 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-41a6399f-de88-4110-b587-89ca80a2bab2 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-22T18:20:58.266604+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-b1c3cf5b-7fc1-43ca-b225-3b0e9b2ce457 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-22T18:20:58.266604+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode" : null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": "foo", "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type [0.086095s] ... 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-a8cc91d2-6f05-4510-b468-1fdf6995579c 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-22T18:20:58.286169+00:00", "updated_at": "2025-05-22T18:20:58.331913+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} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.090167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a26472c1-25a4-4760-8c80-fd1b6b648fb0', '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/a26472c1-25a4-4760-8c80-fd1b6b648fb0 Openstack-Request-Id: req-4a145d2b-870b-458e-94b8-bea5b4a0b294 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a26472c1-25a4-4760-8c80-fd1b6b648fb0", "created_at": "2025-05-22T18:20:58.361183+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a26472c1-25a4-4760-8c80-fd1b6b648fb0", "rel": "self"}, {"href": "http://localhost/deploy_templates/a26472c1-25a4-4760-8c80-fd1b6b648fb0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api [0.050758s] ... 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-becfcc88-4648-45c6-9625-11ef61314695 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.131672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-dae130cd-fae1-4f4f-890b-46e77d2ca170 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-b8917255-4ba8-4c7e-afc1-a41549c3faf6 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}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.067795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'cf31bf02-aa22-4033-a93e-4afaaaf16084', '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-724dd3e6-6c36-464b-9840-8eb62ad99e64 X-Openstack-Ironic-Api-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_node.TestPost.test_create_node_resource_class_old_api_version [0.135450s] ... 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-6f6bb022-7fa7-4122-b769-e425b266a929 X-Openstack-Ironic-Api-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_port.TestPatch.test_add_multi [0.088274s] ... 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-ccae9706-94fe-4c84-ae28-cd1725defe62 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-22T18:20:58.425103+00:00", "updated_at": "2025-05-22T18:20:58.472038+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.093382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=somefake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9ab3528d-a42d-4e61-a75e-ecd366e4ff0f 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-0c0951bb-e99f-41e9-9980-6d7503d0d747 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}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.093201s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f7b143f-4ced-494c-8384-fa9bc1021c37 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-34ad5caa-af83-49da-9b0c-e96c1ceae435 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-6918cb0d-0710-4bc3-a4d9-312f7a625495 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_port.TestPatch.test_add_node_id [0.095491s] ... 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-4d3ec2fc-d262-47aa-bb82-7874b5eae271 X-Openstack-Ironic-Api-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.TestListNodes.test_get_nodes_by_invalid_driver [0.083373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-164acc3d-32e5-4d3a-9fd4-b28f79f074bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": []} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.074561s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6eea0d3a-6b41-4a42-86ed-2711dbc62994 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state [0.049162s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a7463942-b7f5-4ce0-92a2-c5ef6e4e69be 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.223408s] ... 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-06d39ba2-7223-4875-b1ea-9662816601f1 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-22T18:20:58.611863+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-9271b8bc-766a-4e97-9bc3-656133a14fab 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-22T18:20:58.611863+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.041404s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a6c637e-39d5-4755-93f5-6a1701ee729f 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.TestDriverProperties.test_driver_properties_fake [0.098199s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/test/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e93c8b20-0efc-4674-9d5e-380541afcece 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."} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.052223s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8dc34506-d20c-43c2-a2eb-51b0d2de077f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.187452s] ... 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-507b7c45-7ca6-4262-abdc-9154784f5678 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-22T18:20:58.649217+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee [0.083800s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d629cd37-0bb9-4eb7-9b5a-e25fc1ea030b 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": "fed12200-2afe-47a7-9c37-a224164c35cf", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/fed12200-2afe-47a7-9c37-a224164c35cf", "rel": "self"}, {"href": "http://localhost/nodes/fed12200-2afe-47a7-9c37-a224164c35cf", "rel": "bookmark"}]}]} GET /v1/nodes?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c7bb4c0-9002-4b95-8a49-409054c5adf8 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": "34ae602e-f996-4645-a0d6-245687f2918c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/34ae602e-f996-4645-a0d6-245687f2918c", "rel": "self"}, {"href": "http://localhost/nodes/34ae602e-f996-4645-a0d6-245687f2918c", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbab7353-63eb-4e7b-84ec-5feec1e72864 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": "fed12200-2afe-47a7-9c37-a224164c35cf", "created_at": "2025-05-22T18:20:58.771363+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/fed12200-2afe-47a7-9c37-a224164c35cf", "rel": "self"}, {"href": "http://localhost/nodes/fed12200-2afe-47a7-9c37-a224164c35cf", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fed12200-2afe-47a7-9c37-a224164c35cf/ports", "rel": "self"}, {"href": "http://localhost/nodes/fed12200-2afe-47a7-9c37-a224164c35cf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fed12200-2afe-47a7-9c37-a224164c35cf/states", "rel": "self"}, {"href": "http://localhost/nodes/fed12200-2afe-47a7-9c37-a224164c35cf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fed12200-2afe-47a7-9c37-a224164c35cf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fed12200-2afe-47a7-9c37-a224164c35cf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fed12200-2afe-47a7-9c37-a224164c35cf/volume", "rel": "self"}, {"href": "http://localhost/nodes/fed12200-2afe-47a7- 9c37-a224164c35cf/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8392cba-a552-4d87-9126-9f4dd8a5c1fd 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": "34ae602e-f996-4645-a0d6-245687f2918c", "created_at": "2025-05-22T18:20:58.773318+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/34ae602e-f996-4645-a0d6-245687f2918c", "rel": "self"}, {"href": "http://localhost/nodes/34ae602e-f996-4645-a0d6-245687f2918c", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/34ae602e-f996-4645-a0d6-245687f2918c/ports", "rel": "self"}, {"href": "http://localhost/nodes/34ae602e-f996-4645-a0d6-245687f2918c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/34ae602e-f996-4645-a0d6-245687f2918c/states", "rel": "self"}, {"href": "http://localhost/nodes/34ae602e-f996-4645-a0d6-245687f2918c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/34ae602e-f996-4645-a0d6-245687f2918c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/34ae602e-f996-4645-a0d6-245687f2918c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/34ae602e-f996-4645-a0d6-245687f2918c/volume", "rel": "self"}, {"href": "http://localhost/nodes/34ae602e-f996-4645-a0d6-245687f2918c/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.112178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-29e6922e-7772-42ed-8568-95464a54c851 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."} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed [0.047754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-82f07909-f97c-4441-96a4-21a17c05dd10 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-04bf4152-0755-45fe-8ca4-8299df5dfeaf 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}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version [0.241441s] ... 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-73843198-d933-4dfa-bc2a-6d6edc77a324 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.207586s] ... 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-4fcd4af3-d7df-498d-844e-9e26b55056d5 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-22T18:20:58.832925+00:00", "updated_at": "2025-05-22T18:20:58.922654+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} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.137293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/bad_driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ed44aba1-b7c9-4beb-bb4d-7c5aa26332bb X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.142065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-270b3fa9-b876-4f66-9fb2-7d75ccab6cc3 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": "8f18ad87-7d5b-4c4f-b959-37d4c22b7141", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141", "rel": "self"}, {"href": "http://localhost/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141", "rel": "bookmark"}]}]} GET /v1/nodes?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-818987e1-25f6-411d-95c9-eae7531a6a65 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": "1abd418a-99e4-4692-b8b1-eb9277fc7b39", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39", "rel": "self"}, {"href": "http://localhost/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5eea0a3-c576-4a79-9c57-9e68e5a9c092 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": "8f18ad87-7d5b-4c4f-b959-37d4c22b7141", "created_at": "2025-05-22T18:20:58.900227+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/8f18ad87-7d5b-4c4f-b959-37d4c22b7141", "rel": "self"}, {"href": "http://localhost/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141/ports", "rel": "self"}, {"href": "http://localhost/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141/states", "rel": "self"}, {"href": "http://localhost/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141/volume", "rel": "self"}, {"href": "http://localhost/nodes/8f18ad87-7d5b-4c4f-b959-37d4c22b7141/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b2fa3bc-9303-4fba-a60d-9c5bb8cd82c0 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": "1abd418a-99e4-4692-b8b1-eb9277fc7b39", "created_at": "2025-05-22T18:20:58.915163+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/1abd418a-99e4-4692-b8b1-eb9277fc7b39", "rel": "self"}, {"href": "http://localhost/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39/ports", "rel": "self"}, {"href": "http://localhost/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39/states", "rel": "self"}, {"href": "http://localhost/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39/volume", "rel": "self"}, {"href": "http://localhost/nodes/1abd418a-99e4-4692-b8b1-eb9277fc7b39/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.066173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-39e3af77-4a29-4e10-8b79-a27a619aa0af 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-c70ad39c-63b2-463b-99b3-7b2818b16310 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}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events [0.144859s] ... 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-00aea849-30a0-4ef3-957c-e8558181254f 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_port.TestPatch.test_add_physical_network_old_api_version [0.209345s] ... 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-47c1b42c-111a-406b-88ca-459e9e8cee0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.116991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=available WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-88b8beb6-827f-44e8-a2d1-8daeb8fcdad3 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": "29fa26ca-0763-44e2-bda3-a40183b43af6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/29fa26ca-0763-44e2-bda3-a40183b43af6", "rel": "self"}, {"href": "http://localhost/nodes/29fa26ca-0763-44e2-bda3-a40183b43af6", "rel": "bookmark"}]}]} GET /v1/nodes?provision_state=deploying WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07736652-38b2-46f7-b0c5-7d59015e5958 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": "bf64306b-305d-4e4b-9afa-fa4cd684ac9c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "deploying", "name": null, "links": [{"href": "http://localhost/v1/nodes/bf64306b-305d-4e4b-9afa-fa4cd684ac9c", "rel": "self"}, {"href": "http://localhost/nodes/bf64306b-305d-4e4b-9afa-fa4cd684ac9c", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event [0.087125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eefd8668-b884-46e5-8f60-111eda160d33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event [0.072915s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6d471414-27c1-4bc4-9197-9bb0b48329a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.121765s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8f103d1f-b900-4fce-9696-cd5721e8fbf1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.8 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.168681s] ... 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-016b280b-d710-4626-8140-cbf788e1cdfa 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_event.TestPostRBAC.test_events_unsupported_api_version [0.087476s] ... 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-bb305a6f-ca4a-491a-a793-cc8d17bdfe60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.176557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f1df09b-069a-46f7-b5cd-26715eb723a3 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": "1735b2c9-37db-4991-9a94-b4991c5d42f0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1735b2c9-37db-4991-9a94-b4991c5d42f0", "rel": "self"}, {"href": "http://localhost/nodes/1735b2c9-37db-4991-9a94-b4991c5d42f0", "rel": "bookmark"}]}]} GET /v1/nodes?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7fec7093-d9ce-4e21-88bf-a65d1ca39f09 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": "4c622991-e67e-40b4-bbc3-b8fc83cb363e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/4c622991-e67e-40b4-bbc3-b8fc83cb363e", "rel": "self"}, {"href": "http://localhost/nodes/4c622991-e67e-40b4-bbc3-b8fc83cb363e", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events [0.149287s] ... 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-8955963a-c8ca-4952-a742-b5d3c35ae22a 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_port.TestPatch.test_add_portgroup_uuid [0.247230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'a5a5b924-df75-4808-99d9-7e28a4355505', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21ec9f8a-e9f3-481f-beaa-1ecf65cb3bc4 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-22T18:20:59.424426+00:00", "updated_at": "2025-05-22T18:20:59.589212+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": "a5a5b924-df75-4808-99d9-7e28a4355505"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events [0.130637s] ... 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-8ba0f54e-6507-46e8-a3bb-1181a6234ca6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.193894s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-592846f9-ad63-4f20-baca-ff847374ab79 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": "7982c0b4-07e6-46ef-ad48-62bf1db0f641", "created_at": "2025-05-22T18:20:59.608715+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/7982c0b4-07e6-46ef-ad48-62bf1db0f641", "rel": "self"}, {"href": "http://localhost/nodes/7982c0b4-07e6-46ef-ad48-62bf1db0f641", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7982c0b4-07e6-46ef-ad48-62bf1db0f641/ports", "rel": "self"}, {"href": "http://localhost/nodes/7982c0b4-07e6-46ef-ad48-62bf1db0f641/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7982c0b4-07e6-46ef-ad48-62bf1db0f641/states", "rel": "self"}, {"href": "http://localhost/nodes/7982c0b4-07e6-46ef-ad48-62bf1db0f641/states", "rel": "bookmark"}]}]} GET /v1/nodes/detail?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-30f649bd-9c49-4fa3-a101-1beb0aa7396d 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": "2e3d99b8-7530-4976-8099-faf3e015022a", "created_at": "2025-05-22T18:20:59.628604+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/2e3d99b8-7530-4976-8099-faf3e015022a", "rel": "self"}, {"href": "http://localhost/nodes/2e3d99b8-7530-4976-8099-faf3e015022a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2e3d99b8-7530-4976-8099-faf3e015022a/ports", "rel": "self"}, {"href": "http://localhost/nodes/2e3d99b8-7530-4976-8099-faf3e015022a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2e3d99b8-7530-4976-8099-faf3e015022a/states", "rel": "self"}, {"href": "http://localhost/nodes/2e3d99b8-7530-4976-8099-faf3e015022a/states", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root [0.160470s] ... 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-f57889f9-4ac2-4f64-aa98-1d4b05224b16 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-22T18:20:59.649078+00:00", "updated_at": "2025-05-22T18:20:59.748572+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events [0.085880s] ... 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-23eb96a7-b73f-45f7-8e1a-fd05725bda70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.117822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0ca1ad8c-8fd3-41fe-813b-1166159a0148 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent [0.094419s] ... 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-622b2a56-a1bf-46f3-94a2-1acb5cdc4058 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id [0.083504s] ... 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-8a488579-cc63-4b88-976e-b9306b176318 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type [0.074386s] ... 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-d31751cf-b148-452a-b3f0-99dcd9b9b5a3 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.113380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e9c84663-7ecc-4a3f-bc12-30c3dd498d59 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id [0.079539s] ... 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-368565a0-5e7e-47a6-a0f6-e85d51c9eb1d X-Openstack-Ironic-Api-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_port.TestPatch.test_invalid_physnet_empty_string [0.174087s] ... 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-a8175ad7-ad25-41f0-86ca-d0791e6bf04d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.122943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?traits=CUSTOM_TRAIT_1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-49195c3c-0c26-468d-85e1-03ae00c34ec5 X-Openstack-Ironic-Api-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_event.TestPostRBAC.test_network_port_event_invalid_mac_address [0.069607s] ... 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-94f0ccdb-a453-44b4-b59e-51e86ecc25f5 X-Openstack-Ironic-Api-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_port.TestPatch.test_invalid_physnet_non_text [0.144231s] ... 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-9f209611-4fdb-4bd7-a3fd-e99147e5c932 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.111213s] ... 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-1eb45666-927d-4e9c-b5a1-dd405fc1ebed X-Openstack-Ironic-Api-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_event.TestPostRBAC.test_network_port_event_invalid_port_id [0.095638s] ... 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-6e2db468-49fc-463c-bf77-59aae9fd2f2b X-Openstack-Ironic-Api-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_event.TestPostRBAC.test_network_port_event_invalid_status [0.080828s] ... 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-961feb9e-da3b-46d0-9b33-ada46f5e3248 X-Openstack-Ironic-Api-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_port.TestPatch.test_invalid_physnet_too_long [0.160349s] ... 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-cc5b2be0-2601-4f00-9e24-34202bf421d4 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.163198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-29b58a67-9d32-4921-9e3f-dd69951d5f13 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-22T18:21:00.288549+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_event.TestPostRBAC.test_network_unbind_port_events [0.080625s] ... 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-e856638b-e70f-4704-a0e9-1450c73ef9cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property [0.086996s] ... 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-693fd295-9eda-4245-bf91-26defcf5ff66 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.130606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/ca75fc89-3cb3-49d1-b56e-81d44dbcb991 WITH [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8d7a8833-5948-40e5-a0d1-45d6d92033fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict [0.175862s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3858ac8f-e2f9-40dc-9aba-ef75b4a7f099 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-22T18:21:00.462805+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_inspection_rule.TestDelete.test_delete_by_uuid [0.096179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/inspection_rules/9e7b617f-28dc-43d0-93c0-83ced4a95daa GOT Response: 204 No Content Openstack-Request-Id: req-57af2926-6952-4561-aeca-d1a2bb9dc492 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_inspection_rule.TestDelete.test_delete_invalid_api_version [0.053141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/inspection_rules/05f007a4-66a0-41aa-aa95-f0c29d239021 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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type [0.189011s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/39940bb0-10f9-4e10-a396-60a79b30e0ae WITH [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab7a82de-23f4-4f90-ad59-14c761794540 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "39940bb0-10f9-4e10-a396-60a79b30e0ae", "created_at": "2025-05-22T18:21:00.542875+00:00", "updated_at": "2025-05-22T18:21:00.649103+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/39940bb0-10f9-4e10-a396-60a79b30e0ae", "rel": "self"}, {"href": "http://localhost/ports/39940bb0-10f9-4e10-a396-60a79b30e0ae", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.163687s] ... 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-48435d59-d4a2-4ef4-b17c-472b320c7768 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_patch_invalid_api_version [0.072826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/inspection_rules/6dd792c7-b55d-4ae7-9c9f-553e1acb9dfd WITH [{'op': 'replace', 'path': '/description', 'value': 'New description'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow inspection rules\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [1.784094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '32688d30-fa61-4a92-97ad-c6a3d8aa8316', '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/32688d30-fa61-4a92-97ad-c6a3d8aa8316 Openstack-Request-Id: req-4f7c14be-1f76-40ee-9786-641b9b94c4f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "32688d30-fa61-4a92-97ad-c6a3d8aa8316", "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/32688d30-fa61-4a92-97ad-c6a3d8aa8316", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/ports", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/states", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/volume", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/volume", "rel": "bookmark"}]} GET /v1/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4c5245c4-bf7e-4c40-afea-7f7fed6d33a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "32688d30-fa61-4a92-97ad-c6a3d8aa8316", "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/32688d30-fa61-4a92-97ad-c6a3d8aa8316", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/ports", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/states", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/volume", "rel": "self"}, {"href": "http://localhost/nodes/32688d30-fa61-4a92-97ad-c6a3d8aa8316/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '59075f92-d219-4522-a10e-6f12478c1599', '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/59075f92-d219-4522-a10e-6f12478c1599 Openstack-Request-Id: req-d3fcd75c-a5b3-451a-8708-9db5f693373d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "59075f92-d219-4522-a10e-6f12478c1599", "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/59075f92-d219-4522-a10e-6f12478c1599", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e-6f12478c1599", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/59075f92-d219-4522-a10e-6f12478c1599/ports", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e- 6f12478c1599/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59075f92-d219-4522-a10e-6f12478c1599/states", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e-6f12478c1599/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59075f92-d219-4522-a10e-6f12478c1599/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e-6f12478c1599/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59075f92-d219-4522-a10e-6f12478c1599/volume", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e-6f12478c1599/volume", "rel": "bookmark"}]} GET /v1/nodes/59075f92-d219-4522-a10e-6f12478c1599 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4e4a1a04-f0e4-4506-9c1c-95ed1216d2a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "59075f92-d219-4522-a10e-6f12478c1599", "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/59075f92-d219-4522-a10e-6f12478c1599", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e-6f12478c1599", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/59075f92-d219-4522-a10e-6f12478c1599/ports", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e-6f12478c1599/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59075f92-d219-4522-a10e-6f12478c1599/states", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e-6f12478c1599/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59075f92-d219-4522-a10e-6f12478c1599/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e-6f12478c1599/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59075f92-d219-4522-a10e-6f12478c1599/volume", "rel": "self"}, {"href": "http://localhost/nodes/59075f92-d219-4522-a10e-6f12478c1599/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '7606eaaa-f0f2-46eb-85fc-fc2d3de71331', '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/7606eaaa-f0f2-46eb-85fc-fc2d3de71331 Openstack-Request-Id: req-ab6a7504-44c1-4fa9-a569-c7776c43f6e7 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": "7606eaaa-f0f2-46eb-85fc-fc2d3de71331", "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/7606eaaa-f0f2-46eb-85fc-fc2d3de71331", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/ports", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/states", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/volume", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/volume", "rel": "bookmark"}]} GET /v1/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9242c746-3d16-4426-8e82-2829ec07f742 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "7606eaaa-f0f2-46eb-85fc-fc2d3de71331", "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/7606eaaa-f0f2-46eb-85fc-fc2d3de71331", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/ nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/ports", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/states", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/volume", "rel": "self"}, {"href": "http://localhost/nodes/7606eaaa-f0f2-46eb-85fc-fc2d3de71331/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3', '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/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3 Openstack-Request-Id: req-028dfa98-0846-4cf0-9dc7-48b39ec9c6ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3", "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/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/ports", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/states", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/volume", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/volume", "rel": "bookmark"}]} GET /v1/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f57d55e- 7a54-4081-b5ec-8d92bae5e33c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3", "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/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/ports", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/states", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/volume", "rel": "self"}, {"href": "http://localhost/nodes/0eadf2e0-67d0-42fb-8ef4-4ac5dabda4b3/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '74bcca26-fce1-4db9-983a-71ad0ddf8f95', '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/74bcca26-fce1-4db9-983a-71ad0ddf8f95 Openstack-Request-Id: req-df830ebb-b762-42ff-9131-22910ea8a801 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "74bcca26-fce1-4db9-983a-71ad0ddf8f95", "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/74bcca26-fce1-4db9-983a-71ad0ddf8f95", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/ports", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/states", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/volume", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/volume", "rel": "bookmark"}]} GET /v1/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-52604943-23c8-468d-9c67-bd3638dc060a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "74bcca26-fce1-4db9-983a-71ad0ddf8f95", "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/74bcca26-fce1-4db9-983a-71ad0ddf8f95", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/ports", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/states", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/volume", "rel": "self"}, {"href": "http://localhost/nodes/74bcca26-fce1-4db9-983a-71ad0ddf8f95/volume", "rel": "bookmark"}]} POST /v1/nodes WIT H {'uuid': '78b3e529-eab6-4f50-96a6-da28219d2888', '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/78b3e529-eab6-4f50-96a6-da28219d2888 Openstack-Request-Id: req-ab807930-ed7f-446f-b9f3-69d451decb27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "78b3e529-eab6-4f50-96a6-da28219d2888", "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/78b3e529-eab6-4f50-96a6-da28219d2888", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/ports", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/states", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/volume", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/volume", "rel": "bookmark"}]} GET /v1/nodes/78b3e529-eab6-4f50-96a6-da28219d2888 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb06c5df-5d46-47a9-9aec-a61b3cde78fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "78b3e529-eab6-4f50-96a6-da28219d2888", "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/78b3e529-eab6-4f50-96a6-da28219d2888", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/ports", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/states", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/volume", "rel": "self"}, {"href": "http://localhost/nodes/78b3e529-eab6-4f50-96a6-da28219d2888/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'a8a925e6-d229-4faa-9c8e-ab55409e4dfe', '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/a8a925e6-d229-4faa-9c8e-ab55409e4dfe Openstack-Request-Id: req-79e48691-cf6d-412c-a35e-0d67a4f4f866 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a8a925e6-d229-4faa-9c8e-ab55409e4dfe", "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/a8a925e6-d229-4faa-9c8e-ab55409e4dfe", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/ports", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/states", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/volume", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/volume", "rel": "bookmark"}]} GET /v1/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5fd8d999-4767-4b31-b776-04041e8962a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a8a925e6-d229-4faa-9c8e-ab55409e4dfe", "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/a8a925e6-d229-4faa-9c8e-ab55409e4dfe", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/ports", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/states", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/volume", "rel": "self"}, {"href": "http://localhost/nodes/a8a925e6-d229-4faa-9c8e-ab55409e4dfe/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '2c039ab2-9104-4faa-9939-d33569b0f035', '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/2c039ab2-9104-4faa-9939-d33569b0f035 Openstack-Request-Id: req-00f09673-8b3b-48df-8402-457e31b4b462 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": "2c039ab2-9104-4faa-9939-d33569b0f035", "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/2c039ab2-9104-4faa-9939-d33569b0f035", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/states", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/volume", "rel": "bookmark"}]} GET /v1/nodes/2c039ab2-9104-4faa-9939-d33569b0f035 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3deaa98e-ab43-4096-b18e-14d61d482f80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "2c039ab2-9104-4faa-9939-d33569b0f035", "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/2c039ab2-9104-4faa-9939-d33569b0f035", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2c039ab2-9104- 4faa-9939-d33569b0f035/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/states", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c039ab2-9104-4faa-9939-d33569b0f035/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '828cc856-838d-4882-b2ef-5efb4184cd10', '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/828cc856-838d-4882-b2ef-5efb4184cd10 Openstack-Request-Id: req-c1383601-c452-494c-8055-fdf87b9e7167 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "828cc856-838d-4882-b2ef-5efb4184cd10", "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/828cc856-838d-4882-b2ef-5efb4184cd10", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/ports", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/states", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/volume", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/volume", "rel": "bookmark"}]} GET /v1/nodes/828cc856-838d-4882-b2ef-5efb4184cd10 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb260c2b-49e3-4b00-bff2-b0c5d 9e8b73f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "828cc856-838d-4882-b2ef-5efb4184cd10", "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/828cc856-838d-4882-b2ef-5efb4184cd10", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/ports", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/states", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/volume", "rel": "self"}, {"href": "http://localhost/nodes/828cc856-838d-4882-b2ef-5efb4184cd10/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'c8b3be52-4668-4b2c-9fc1-05447471ef88', '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/c8b3be52-4668-4b2c-9fc1-05447471ef88 Openstack-Request-Id: req-b6c64013-285f-447e-8f37-5665a1eb3ea2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "c8b3be52-4668-4b2c-9fc1-05447471ef88", "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/c8b3be52-4668-4b2c-9fc1-05447471ef88", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/ports", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/states", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/volume", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/volume", "rel": "bookmark"}]} GET /v1/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b4abe0a-42d4-43e6-86f5-9960f860116a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "c8b3be52-4668-4b2c-9fc1-05447471ef88", "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/c8b3be52-4668-4b2c-9fc1-05447471ef88", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/ports", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/states", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/volume", "rel": "self"}, {"href": "http://localhost/nodes/c8b3be52-4668-4b2c-9fc1-05447471ef88/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'a9dde40a-d26 1-43c2-90bd-f4758a04fc2d', '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/a9dde40a-d261-43c2-90bd-f4758a04fc2d Openstack-Request-Id: req-e5d84eb6-6ae1-4751-ac25-e689717debf5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a9dde40a-d261-43c2-90bd-f4758a04fc2d", "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/a9dde40a-d261-43c2-90bd-f4758a04fc2d", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/ports", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/states", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/volume", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/volume", "rel": "bookmark"}]} GET /v1/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0955eb3-0a3f-4662-98aa-97c2cca73212 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a9dde40a-d261-43c2-90bd-f4758a04fc2d", "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/a9dde40a-d261-43c2-90bd-f4758a04fc2d", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/ports", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/states", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/volume", "rel": "self"}, {"href": "http://localhost/nodes/a9dde40a-d261-43c2-90bd-f4758a04fc2d/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'ceeece4b-0ebb-47c9-916c-37ed144d6b62', '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/ceeece4b-0ebb-47c9-916c-37ed144d6b62 Openstack-Request-Id: req-3a593a27-bc87-489c-825f-1786b7012b8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ceeece4b-0ebb-47c9-916c-37ed144d6b62", "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/ceeece4b-0ebb-47c9-916c-37ed144d6b62", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/ports", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/states", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/volume", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/volume", "rel": "bookmark"}]} GET /v1/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09cdd250-aebe-4447-a5b1-04aa20686ed2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ceeece4b-0ebb-47c9-916c-37ed144d6b62", "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/ceeece4b-0ebb-47c9-916c-37ed144d6b62", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/ports", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/states", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/volume", "rel": "self"}, {"href": "http://localhost/nodes/ceeece4b-0ebb-47c9-916c-37ed144d6b62/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api [0.123434s] ... 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-a2fbd8a6-6336-4b1e-acf5-ccdb54c87231 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_as_list [0.145779s] ... 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-282c845b-d698-4291-8b09-067622ce533d 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_set_sensitive_field [0.160929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '1eb58e66-4bd2-4f9f-b18b-319a93778cde', '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/1eb58e66-4bd2-4f9f-b18b-319a93778cde Openstack-Request-Id: req-c4a7a924-a2c3-4489-977a-e2c8715b20db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1eb58e66-4bd2-4f9f-b18b-319a93778cde", "created_at": "2025-05-22T18:21:00.768072+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/1eb58e66-4bd2-4f9f-b18b-319a93778cde", "rel": "self"}, {"href": "http://localhost/inspection/1eb58e66-4bd2-4f9f-b18b-319a93778cde", "rel": "bookmark"}]} PATCH /v1/inspection_rules/1eb58e66-4bd2-4f9f-b18b-319a93778cde WITH [{'op': 'replace', 'path': '/sensitive', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19171d8c-e838-4b72-9b4e-caa30e4cd305 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1eb58e66-4bd2-4f9f-b18b-319a93778cde", "created_at": "2025-05-22T18:21:00.768072+00:00", "updated_at": "2025-05-22T18:21:00.833142+00:00", "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/1eb58e66-4bd2-4f9f-b18b-319a93778cde", "rel": "self"}, {"href": "http://localhost/inspection/1eb58e66-4bd2-4f9f-b18b-319a93778cde", "rel": "bookmark"}]} PATCH /v1/inspection_rules/1eb58e66-4bd2-4f9f-b18b-319a93778cde WITH [{'op': 'replace', 'path': '/sensitive', 'value': False}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-78dd6aa0-1aba-41f1-a3e0-efce44634bc1 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.141547s] ... 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-e1454ce1-3e35-4bcc-906b-89bac24aadce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_get_child_node [0.106396s] ... 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-ad75efef-8f5f-4217-b0a5-c341e9cc40e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["ebdaa219-7697-44c0-8aa4-137d8ec3f312"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password [0.145910s] ... 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-5c874f50-0b4f-4fcd-aa16-b678edce9dc5 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_node_children_by_single_node [0.114196s] ... 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-07e5d394-da33-4607-8c71-d6d52b472a48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["7877fdec-2a44-42e5-a7e9-6a0291dfb918", "48aaf5fc-6b00-4975-a414-ac0d86655142"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field [0.192979s] ... 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-fc2f264c-6a11-497a-8e54-c6b654c49449 X-Openstack-Ironic-Api-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.TestListNodes.test_get_one_with_deleted_chassis [0.147129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-817b42bf-ac29-468c-8b46-7c63cb9ffcf4 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-22T18:21:01.077050+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_node.TestPost.test_create_node_specify_interfaces_bad_version [0.430504s] ... 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-182c822c-206f-47a4-85b8-dc1aa0298906 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-37f13d9a-effc-400a-809e-d9da6ea446a0 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-a7d5b8ea-4cbd-4f8d-b1c3-532893770e7e 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-84625198-91be-4799-a764-2faf052b2b0c 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-4e6a6069-bb2a-4dc5-9d23-d8c08e96f15a 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-a6d4fd56-ef51-4166-b1e1-13dca1a3486e 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-73bfd412-cb0c-4918-8bd1-1412a27ea1f5 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-fe273361-9e88-47b7-ad6c-59f4a8b6ed75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes [0.097085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-077dc274-df4a-4346-b59c-2f4a9d1c9604 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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits [0.180127s] ... 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-d742c1f7-3aa7-4c90-b73a-46cafe9c8699 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('traits' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json_in_name [0.200030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4441ff22-0bdb-4922-a270-6e4a8d73d224 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-22T18:21:01.245480+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node.json.json", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.147752s] ... 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-1fcc8408-5aae-4db6-be91-779c963cea4f 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-22T18:21:01.444105+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_node.TestPost.test_create_node_storage_interface_old_api_version [0.172462s] ... 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-f558e9be-b788-450d-a29d-f9929a967e9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi [0.462376s] ... 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-ff633018-7d7c-49f0-98c5-c68fa7b70d8e 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-22T18:21:01.228695+00:00", "updated_at": "2025-05-22T18:21:01.430961+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-f62c55e3-89a1-4fdd-a003-cc19f5ac274c 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-22T18:21:01.228695+00:00", "updated_at": "2025-05-22T18:21:01.567329+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.140201s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4648b282-7882-4322-8636-b8e147dd55d4 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-22T18:21:01.617360+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id [0.131770s] ... 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-00f94519-d013-4a75-bf60-28ba93b29238 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_cannot_see_children_if_not_owned [0.563538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=78e72bd7-bd39-420c-9001-183a41225946 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b41d69a5-eccd-4ad5-b1d9-e22fb7a2c134 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_not_found [0.124513s] ... 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-c1e659a5-27d1-4677-81f6-ed4683246870 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_ignores_parent_if_include_children_indicated [0.103103s] ... 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-8f6f0b87-8541-4150-b4fc-e15638041677 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": "cd330ac7-8d78-4e11-be1e-b2896c68fa66", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/cd330ac7-8d78-4e11-be1e-b2896c68fa66", "rel": "self"}, {"href": "http://localhost/nodes/cd330ac7-8d78-4e11-be1e-b2896c68fa66", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info [0.365989s] ... 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-0de07e74-de9b-474a-93ec-b17ecb678390 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-22T18:21:01.837814+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-6e638e20-c86c-4f4a-a203-e5a8dceb7ca9 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-22T18:21:01.837814+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.211170s] ... 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-50427eb6-5e49-4f38-82f5-702483ca63ae X-Openstack-Ironic-Api-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 non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.107529s] ... 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-b8a670ff-0e3c-477d-97c7-fecb2aef7c51 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-22T18:21:01.970078+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-370ab3e9-7d6b-409d-ab93-484140522743 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-22T18:21:01.970078+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret [0.179718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ca08628a-8711-450d-b10b-4a90f45ddb0f 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-22T18:21:01.921161+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"agent_secret_token": "******", "agent_secret_token_pregenerated": "******"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_lists_empty_for_specific_parent [0.169838s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=a61dbd1b-8ab9-4fd0-b6af-ba9363418ef9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3357fed5-d62a-43bf-babe-140785a0956d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix [0.073992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/test.1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2fb5ebc-2584-4168-88c3-aa9c8cc3fa3d 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-22T18:21:02.046308+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "test.1", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.042337s] ... 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-174e166d-6366-4b52-98bb-473cdc761d33 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields [0.048981s] ... 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-8c7a3729-56d3-40d6-8d0b-72e4a8578000 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"protected": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.284505s] ... 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-fc0cd775-d2b0-44ea-be58-ff2ed201af78 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-22T18:21:02.034232+00:00", "updated_at": "2025-05-22T18:21:02.188030+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields [0.065732s] ... 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-3c4761c1-f834-4270-b33d-43b95b391af1 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.246350s] ... 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-3f31d757-4543-4704-800e-3be56abb806e 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-22T18:21:02.176359+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-d8034c94-bba7-400c-be37-fe963ea01063 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-22T18:21:02.176359+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_node.TestNodeChildrenTestCase.test_list_nodes_with_children_only_parent [0.230752s] ... 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-558bbba5-d42e-4738-a3a5-fa3b9bbd77a6 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": "edda6682-6f12-4361-856a-7c8c4b4e42ed", "name": "din", "parent_node": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.061669s] ... 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-8fbecfe2-6681-4a3c-af99-17092b0fc342 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.035633s] ... 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-aa6ee065-2186-437c-bcf6-feab687a58cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.037582s] ... 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-b7af7fcb-2654-49dd-904b-dd84d0daf0eb 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"]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.176914s] ... 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-8f15e692-5b1b-47f1-80ea-220649b85038 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name [0.047031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device/supported WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4075688f-2cbb-4992-9c39-41075cfdecbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"supported_boot_devices": ["pxe"]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_include_children [0.187852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?include_children=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fdef59c-0572-4c9b-9b57-f12cc3f7c592 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": "8caf8ae5-b45e-4b4a-b4d0-a32070605810", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/8caf8ae5-b45e-4b4a-b4d0-a32070605810", "rel": "self"}, {"href": "http://localhost/nodes/8caf8ae5-b45e-4b4a-b4d0-a32070605810", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.293866s] ... 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-ec3a4aa4-d198-462b-88a9-3e59371b5400 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-22T18:21:02.471936+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-1ccc92ab-4ff1-4677-b30c-28c7ba6793bb 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-22T18:21:02.471936+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_port.TestPatch.test_remove_physical_network_upgrade [0.175546s] ... 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-fafdf5d2-5432-490e-80dd-866b2111382e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory [0.161446s] ... 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-7718af12-2bad-4030-b80c-b77276469d7f 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"}]}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.249626s] ... 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-ea75efe1-77c6-4523-bb91-e5f999d1ac44 X-Openstack-Ironic-Api-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_node.TestListNodes.test_get_supported_indicators [0.037604s] ... 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-9a8bab3c-e5b0-4383-ac91-61e42f39c5d2 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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.144858s] ... 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-3796b3a9-71b5-4c38-b9e5-f4bcfbada58d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported [0.040821s] ... 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-d1549a93-2b92-40a0-a910-b3fdfc40c36a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory_no_inventory [0.138384s] ... 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-5a3f6122-c126-45f5-aeba-3b2652de1144 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.81 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node inventory record for node 1 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning [0.051514s] ... 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-681ccaea-2a04-4a1c-b4b8-fd13b69ef6b0 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_node.TestPost.test_create_node_with_default_conductor_group [0.287353s] ... 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-30ee8b93-2c3a-4093-9fdf-1737466903e8 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-22T18:21:02.771311+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-9295da3e-e0fe-4ba4-853a-d8dfaa6968ba 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-22T18:21:02.771311+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "magic", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes /1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_old_version [0.088231s] ... 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.TestListNodes.test_get_traits_fields [0.050202s] ... 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-298c03da-a0bc-43fd-9e4c-bcda6849d1f4 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.053871s] ... 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-d719aa49-3ceb-4e75-9fdf-8baa5c0c2d5f 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.TestListNodes.test_get_with_allocation [0.053941s] ... 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-3ed1e157-2aa6-44e3-8175-608448e88fb9 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": "bb8be168-e747-462e-8a2b-62a8dfb26cab"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.248154s] ... 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-09432a79-aac0-4299-ac21-82f9a29df437 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanhold [0.129258s] ... 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-9c5343e0-5628-4172-a61d-274c3f785df5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.056675s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f90db7e5-6fa9-4403-a067-433caf60e423 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-22T18:21:03.000706+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-ca711c7a-58ab-441c-9d05-afa3bafc4d6e 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-22T18:21:03.000706+00:00", "updated_at": null, "clean_step": {"foo": "bar"}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.058000s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c16d1c08-8df6-4572-af48-efb7e31f0ea4 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-22T18:21:03.066141+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-a4376239-7bd3-4710-9e8f-f37aec708037 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-22T18:21:03.066141+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.125412s] ... 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-0c283f99-f137-45a4-8920-b072aebcb4b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class [0.280426s] ... 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-ec0f92e0-a54f-4840-800b-de80839d5b8d 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-22T18:21:03.080570+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-bad0f0ea-50b1-4372-9b2a-c82a7ca4b2d2 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-22T18:21:03.080570+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.053459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0b390a00-babd-44e4-a6ee-0973402007ac 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-22T18:21:03.126049+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-390135a8-2f4d-4a66-a5a4-909f4aedebd9 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-22T18:21:03.126049+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.225359s] ... 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-31d1d3f8-7b2e-4ee7-a6d0-05c2bcc3b269 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-22T18:21:03.056582+00:00", "updated_at": "2025-05-22T18:21:03.191845+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.085350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebcaca0e-92a3-4d41-8a05-c573299e32e2 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-22T18:21:03.198247+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-466a790b-935c-4e9a-a509-0e3e89d7f4d1 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-22T18:21:03.198247+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.TestPut.test_abort_deployhold [0.125073s] ... 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-d9a7151f-3eb1-4454-b342-1e5d743c6646 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.050475s] ... 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-aa3fbe6d-c1ed-42e9-86bd-4a6b6e06d35a 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.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.061454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0261b6cf-01aa-4de0-a88a-1c36a6cbec12 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-22T18:21:03.272065+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-4a2dc0d1-1acc-4947-9148-2833ce280d1d 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-22T18:21:03.272065+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.057712s] ... 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-925f4218-5033-4571-8f97-4072b56f615f 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.TestListNodes.test_hide_fields_in_newer_versions_name [0.057639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6f9108e2-020a-403f-a9cc-91b2d1a36ae9 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-22T18:21:03.331939+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-7f898c41-57f8-4f99-97af-ce88fdffc18e 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-22T18:21:03.331939+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_node.TestPost.test_create_node_with_internal_field [0.216522s] ... 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-985f82f4-944c-4f4c-9022-ebcd004cf949 X-Openstack-Ironic-Api-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.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.057987s] ... 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-e199eae5-5c94-402c-9c57-5c75e14b53b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.050956s] ... 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-ab177b2b-fd24-4c6d-84ea-f5eb5da43abb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.108516s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a57b94fa-63ad-4b56-b6f4-35d94c15bcbd 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-22T18:21:03.442932+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-468d46b6-305a-4ab0-92d8-760d30941d0a 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-22T18:21:03.442932+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.275457s] ... 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-f1f6380c-8342-4c14-83d5-1b01cd252dfe 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-22T18:21:03.315048+00:00", "updated_at": "2025-05-22T18:21:03.473976+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.056168s] ... 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-579d5cd2-979f-4c3a-9939-011899595bd6 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.057580s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b864ef85-ad19-4f2c-8271-d656599b431c 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-22T18:21:03.510399+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-be2080b4-0b4b-472c-8bbc-520976e52e93 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-22T18:21:03.510399+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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.052866s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b6260a1-4836-45c9-8c58-1989f076afa3 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-22T18:21:03.556763+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-064eaed8-114d-4b80-8082-52e0a225e841 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-22T18:21:03.556763+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uui d": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.119512s] ... 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-1f672064-aa5a-4d56-a038-eace0c5ce07a X-Openstack-Ironic-Api-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-a1a598b2-ef15-4195-bed3-ba5abacb73b5 X-Openstack-Ironic-Api-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-efcb2872-deed-4e7d-b9f3-d895090731b1 X-Openstack-Ironic-Api-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.TestListNodes.test_hide_fields_in_newer_versions_traits [0.099960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2690c3b8-0f3e-41da-ba59-89b900929cf8 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-22T18:21:03.626279+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-456d4fa3-4217-4d7d-9791-bc33f2706655 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-22T18:21:03.626279+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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.070990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16752be1-9c35-48d4-a7fa-e1cf2f2678f2 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-22T18:21:03.731362+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-679af8d5-adc7-4d3b-97bf-eb4a6eccad87 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-22T18:21:03.731362+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.140921s] ... 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-b889b2dd-3787-4cee-ac79-a132f893c216 X-Openstack-Ironic-Api-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-c402b192-fbba-4438-a24b-11cb06b3c785 X-Openstack-Ironic-Api-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-6982e436-a20a-4bc7-8568-fe2331437acd X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.063771s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-498d3a63-d805-49de-8684-cea4df2d7c4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f", "created_at": "2025-05-22T18:21:03.804731+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/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f", "rel": "self"}, {"href": "http://localhost/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f/ports", "rel": "self"}, {"href": "http://localhost/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f/ports", "rel": "bookmark"}]} GET /v1/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a51ef97-d69f-4f05-9057-c370793e4572 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f", "created_at": "2025-05-22T18:21:03.804731+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/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f", "rel": "self"}, {"href": "http://localhost/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f/ports", "rel": "self"}, {"href": "http://localhost/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f/ports", "rel": "bookmark"}]} GET /nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07d7a196-93c0-4618-8f2c-90cbfbda1b71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f", "created_at": "2025-05-22T18:21:03.804731+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/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f", "rel": "self"}, {"href": "http://localhost/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f/ports", "rel": "self"}, {"href": "http://localhost/nodes/6f60b86c-f4a3-47e6-a599-f57eb2bd5f4f/ports", "rel ": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url [0.060849s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e75188a-3aae-4b5d-84c5-461ecf53ed65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4bd9535f-91fe-4df1-8965-30dce3e991af", "created_at": "2025-05-22T18:21:03.869248+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/4bd9535f-91fe-4df1-8965-30dce3e991af", "rel": "self"}, {"href": "http://foo/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af/ports", "rel": "self"}, {"href": "http://foo/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af/ports", "rel": "bookmark"}]} GET /v1/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00cf0132-2dcd-4c72-aabd-b468f9685b85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4bd9535f-91fe-4df1-8965-30dce3e991af", "created_at": "2025-05-22T18:21:03.869248+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/4bd9535f-91fe-4df1-8965-30dce3e991af", "rel": "self"}, {"href": "http://foo/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af/ports", "rel": "self"}, {"href": "http://foo/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af/ports", "rel": "bookmark"}]} GET /nodes/4bd9535f-91fe-4df1-8965-30dce3e991af WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8cd65115-2dd0-4def-9742-95fa65a721da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4bd9535f-91fe-4df1-8965-30dce3e991af", "created_at": "2025-05-22T18:21:03.869248+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/4bd9535f-91fe-4df1-8965-30dce3e991af", "rel": "self"}, {"href": "http://foo/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af/ports", "rel": "self"}, {"href": "http://foo/nodes/4bd9535f-91fe-4df1-8965-30dce3e991af/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [0.063632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5fe782ef-6422-4155-9546-821eeaff9d68 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": "d137b91b-9e02-4529-8d89-8895161c8943", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d137b91b-9e02-4529-8d89-8895161c8943", "rel": "self"}, {"href": "http://localhost/nodes/d137b91b-9e02-4529-8d89-8895161c8943", "rel": "bookmark"}]}, {"uuid": "a9e44c20-ba23-4a36-b6de-f96a7af98050", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a9e44c20-ba23-4a36-b6de-f96a7af98050", "rel": "self"}, {"href": "http://localhost/nodes/a9e44c20-ba23-4a36-b6de-f96a7af98050", "rel": "bookmark"}]}]} GET /v1/nodes?maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1eb2836-a6e7-4624-a4ea-2116af7cff92 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": "e49570d1-eb42-4351-83e6-5c74aa15ab88", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e49570d1-eb42-4351-83e6-5c74aa15ab88", "rel": "self"}, {"href": "http://localhost/nodes/e49570d1-eb42-4351-83e6-5c74aa15ab88", "rel": "bookmark"}]}, {"uuid": "bf5f9076-e9d7-4f96-af03-b5182de6840b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/bf5f9076-e9d7-4f96-af03-b5182de6840b", "rel": "self"}, {"href": "http://localhost/nodes/bf5f9076-e9d7-4f96-af03-b5182de6840b", "rel": "bookmark"}]}, {"uuid": "7971f74b-6743-4fb2-aefb-f1f408f324de", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7971f74b-6743-4fb2-aefb-f1f408f324de", "rel": "self"}, {"href": "http://localhost/nodes/7971f74b-6743-4fb2-aefb-f1f408f324de", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.642445s] ... 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-72ff5319-a948-48ff-9e1e-9fe6d720fc5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.213163s] ... 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-ce0b1bd0-555f-47cf-b740-651be778659b X-Openstack-Ironic-Api-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-c4785815-ee2c-43fe-9aea-2802b9a18080 X-Openstack-Ironic-Api-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-82f0799b-6acb-4005-ada3-0f6c346489c7 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated [0.077407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c6bb907-28eb-4656-b3f4-088524b79efa 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": "3873080f-ab37-4718-9195-d603e3151544", "instance_uuid": "0e2f538f-203a-4b01-8b3f-a10f0e1defa2", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/3873080f-ab37-4718-9195-d603e3151544", "rel": "self"}, {"href": "http://localhost/nodes/3873080f-ab37-4718-9195-d603e3151544", "rel": "bookmark"}]}, {"uuid": "acb17f77-5e3d-4cf6-811e-d0cfc5d169da", "instance_uuid": "2bcbb901-52c7-417e-94a5-db2c93eb08d2", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/acb17f77-5e3d-4cf6-811e-d0cfc5d169da", "rel": "self"}, {"href": "http://localhost/nodes/acb17f77-5e3d-4cf6-811e-d0cfc5d169da", "rel": "bookmark"}]}, {"uuid": "04280501-0a06-4a57-b1fb-0ef6602d1bc7", "instance_uuid": "51868996-c12f-4bb9-80c2-9fbbda923535", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/04280501-0a06-4a57-b1fb-0ef6602d1bc7", "rel": "self"}, {"href": "http://localhost/nodes/04280501-0a06-4a57-b1fb-0ef6602d1bc7", "rel": "bookmark"}]}, {"uuid": "38265168-c052-4b01-93c3-88a5998a3b44", "instance_uuid": "00d2e1fa-8157-4a7c-aa12-60e11ccb0a7d", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/38265168-c052-4b01-93c3-88a5998a3b44", "rel": "self"}, {"href": "http://localhost/nodes/38265168-c052-4b01-93c3-88a5998a3b44", "rel": "bookmark"}]}]} GET /v1/nodes?associated=true&maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0de0c197-468b-4157-8f0c-9e1ffc51d6fb 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": "db260450-316a-40b0-bf02-dcd4619e3e80", "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-7b5323b5-dbd1-4e2d-8303-0ad4021b4384 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": "db260450-316a-40b0-bf02-dcd4619e3e80", "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.036260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a44d9792-3345-4472-95ed-b9a719f3a45b X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many [0.051550s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-176a0ab0-d611-4067-8e20-40b028920364 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": "a485bbcc-19c2-40d2-8a02-723e0a556cf4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a485bbcc-19c2-40d2-8a02-723e0a556cf4", "rel": "self"}, {"href": "http://localhost/nodes/a485bbcc-19c2-40d2-8a02-723e0a556cf4", "rel": "bookmark"}]}, {"uuid": "f8ebcaa6-27cb-4050-aa48-f0e2b63f76d3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/f8ebcaa6-27cb-4050-aa48-f0e2b63f76d3", "rel": "self"}, {"href": "http://localhost/nodes/f8ebcaa6-27cb-4050-aa48-f0e2b63f76d3", "rel": "bookmark"}]}, {"uuid": "64ebe5b1-7ccf-4db7-9362-bf00ea683f1a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/64ebe5b1-7ccf-4db7-9362-bf00ea683f1a", "rel": "self"}, {"href": "http://localhost/nodes/64ebe5b1-7ccf-4db7-9362-bf00ea683f1a", "rel": "bookmark"}]}, {"uuid": "907897f3-ef54-401f-80ce-bec4e380f735", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/907897f3-ef54-401f-80ce-bec4e380f735", "rel": "self"}, {"href": "http://localhost/nodes/907897f3-ef54-401f-80ce-bec4e380f735", "rel": "bookmark"}]}, {"uuid": "ee5a7bb9-fdaf-4376-81c4-0ea9903564ed", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ee5a7bb9-fdaf-4376-81c4-0ea9903564ed", "rel": "self"}, {"href": "http://localhost/nodes/ee5a7bb9-fdaf-4376-81c4-0ea9903564ed", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource [0.123641s] ... 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-549874fd-abca-4467-a879-b484442a5962 X-Openstack-Ironic-Api-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_node.TestPut.test_boot_mode_bios_older_soft_ver [0.132882s] ... 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-824240df-ed9f-4025-b535-3fe88dbc20fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden [0.050671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-13cb7fc1-c758-4d33-9530-8c32ecc91e32 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_node.TestPost.test_post_ports_subresource_no_node_id [0.073797s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id [0.723539s] ... 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-ca9fbabd-d6d5-43dd-8ba4-eb41d075c731 X-Openstack-Ironic-Api-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.TestListNodes.test_many_have_names [0.049205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf7efea8-ff31-44ff-b503-3261ee3e60a8 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": "ea319cd9-bcfb-4681-beca-bd911292c25d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-0", "links": [{"href": "http://localhost/v1/nodes/ea319cd9-bcfb-4681-beca-bd911292c25d", "rel": "self"}, {"href": "http://localhost/nodes/ea319cd9-bcfb-4681-beca-bd911292c25d", "rel": "bookmark"}]}, {"uuid": "978e9281-bca3-4773-8385-3612bf314344", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-1", "links": [{"href": "http://localhost/v1/nodes/978e9281-bca3-4773-8385-3612bf314344", "rel": "self"}, {"href": "http://localhost/nodes/978e9281-bca3-4773-8385-3612bf314344", "rel": "bookmark"}]}, {"uuid": "6a6275c0-b66b-4254-8599-723660a3166d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-2", "links": [{"href": "http://localhost/v1/nodes/6a6275c0-b66b-4254-8599-723660a3166d", "rel": "self"}, {"href": "http://localhost/nodes/6a6275c0-b66b-4254-8599-723660a3166d", "rel": "bookmark"}]}, {"uuid": "d0cc0f9a-91aa-4718-bb63-c2e99a1acd57", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-3", "links": [{"href": "http://localhost/v1/nodes/d0cc0f9a-91aa-4718-bb63-c2e99a1acd57", "rel": "self"}, {"href": "http://localhost/nodes/d0cc0f9a-91aa-4718-bb63-c2e99a1acd57", "rel": "bookmark"}]}, {"uuid": "b7ae9f1f-0768-4517-a585-ecec1ef54011", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-4", "links": [{"href": "http://localhost/v1/nodes/b7ae9f1f-0768-4517-a585-ecec1ef54011", "rel": "self"}, {"href": "http://localhost/nodes/b7ae9f1f-0768-4517-a585-ecec1ef54011", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch [0.040443s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a90ab4be-fbcf-411f-ba85-bf436b2e6353 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver [0.159267s] ... 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-3eb72fcd-3932-4d1f-9e97-ed69ea474edf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource [0.155880s] ... 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-c6e58b28-9b02-4fc0-abab-122a59df84e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden [0.098125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b5ac610-0dbf-4ff1-babd-65e4e3731750 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": "ea29c555-424e-480a-86d0-3f7ceac1f8ee", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ea29c555-424e-480a-86d0-3f7ceac1f8ee", "rel": "self"}, {"href": "http://localhost/nodes/ea29c555-424e-480a-86d0-3f7ceac1f8ee", "rel": "bookmark"}]}, {"uuid": "f3c72c12-6d46-4ad7-8786-502bdd7bf32c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f3c72c12-6d46-4ad7-8786-502bdd7bf32c", "rel": "self"}, {"href": "http://localhost/nodes/f3c72c12-6d46-4ad7-8786-502bdd7bf32c", "rel": "bookmark"}]}, {"uuid": "9d323f7b-05ca-4d78-bbd9-627d470ab76e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/9d323f7b-05ca-4d78-bbd9-627d470ab76e", "rel": "self"}, {"href": "http://localhost/nodes/9d323f7b-05ca-4d78-bbd9-627d470ab76e", "rel": "bookmark"}]}, {"uuid": "d0916d9d-55d1-4b52-aace-be023a38746d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d0916d9d-55d1-4b52-aace-be023a38746d", "rel": "self"}, {"href": "http://localhost/nodes/d0916d9d-55d1-4b52-aace-be023a38746d", "rel": "bookmark"}]}, {"uuid": "f90a968f-3a73-4aec-884e-2fdfef2601a8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f90a968f-3a73-4aec-884e-2fdfef2601a8", "rel": "self"}, {"href": "http://localhost/nodes/f90a968f-3a73-4aec-884e-2fdfef2601a8", "rel": "bookmark"}]}, {"uuid": "a1ca9599-71a0-40c8-bc83-4b7fad4f9659", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a1ca9599-71a0-40c8-bc83-4b7fad4f9659", "rel": "self"}, {"href": "http://localhost/nodes/a1ca9599-71a0-40c8-bc83-4b7fad4f9659", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.119924s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project [0.126574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9041ce7d-1fb8-42f5-89cb-fe1f13026d2b 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_node.TestPut.test_boot_mode_invalid_request [0.199112s] ... 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-00e3d0d9-fcf9-42ee-8fa5-42b08f2d6430 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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.318754s] ... 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-10426c81-b698-4c0e-8067-0583a94cff34 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-22T18:21:04.342942+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.093712s] ... 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-260991c4-f653-4d80-b05f-706dbf91a736 X-Openstack-Ironic-Api-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.TestPost.test_vendor_passthru_async [0.124042s] ... 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-7e8cc000-87de-4311-80e0-51ef43e40281 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver [0.192088s] ... 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-34cea708-9338-47d6-84fe-ccd879739017 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.233427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb9ba23c-868c-4899-b080-9c06157ee400 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-22T18:21:04.652004+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-88198e90-fee1-4d6c-a641-05c198ec1b86 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-22T18:21:04.652004+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid [0.215114s] ... 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-3eea16e1-b6e7-4381-9a9b-78783ed6f664 X-Openstack-Ironic-Api-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_node.TestPost.test_vendor_passthru_by_name [0.178103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-109/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 202 Accepted Openstack-Request-Id: req-bbbb3a70-120e-4489-9866-d2d92e825356 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.250933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3&associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-438394ad-b61c-473b-b8c0-28d0f9053170 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": "91c22916-2250-4c90-995a-c756b0c52b27", "instance_uuid": "f45cae14-76db-41e2-a286-b46d0a6bae6d", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/91c22916-2250-4c90-995a-c756b0c52b27", "rel": "self"}, {"href": "http://localhost/nodes/91c22916-2250-4c90-995a-c756b0c52b27", "rel": "bookmark"}]}, {"uuid": "75eb23e2-6e47-42f7-b5d4-a6338d03c6be", "instance_uuid": "d4868d8c-ab09-40b6-91cd-a9cb1af104c7", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/75eb23e2-6e47-42f7-b5d4-a6338d03c6be", "rel": "self"}, {"href": "http://localhost/nodes/75eb23e2-6e47-42f7-b5d4-a6338d03c6be", "rel": "bookmark"}]}, {"uuid": "46b43126-216e-49f6-b58a-40b4d6ade6b5", "instance_uuid": "9a863e45-6d27-4af9-8438-51e943a79468", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/46b43126-216e-49f6-b58a-40b4d6ade6b5", "rel": "self"}, {"href": "http://localhost/nodes/46b43126-216e-49f6-b58a-40b4d6ade6b5", "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=46b43126-216e-49f6-b58a-40b4d6ade6b5"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.154967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-eacbe504-c7f8-49d5-8ff5-bed6c1d1727f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.110079s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?limit=3&associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-346250e8-2191-4882-b79b-9cbda48a85bb 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": "0f0443a6-6bcb-4d9b-bf48-d415144afa5e", "created_at": "2025-05-22T18:21:05.098216+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": "cdd8c5fe-2c36-40e8-aa41-3c428cb23528", "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/0f0443a6-6bcb-4d9b-bf48-d415144afa5e", "rel": "self"}, {"href": "http://localhost/nodes/0f0443a6-6bcb-4d9b-bf48-d415144afa5e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0f0443a6-6bcb-4d9b-bf48-d415144afa5e/ports", "rel": "self"}, {"href": "http://localhost/nodes/0f0443a6-6bcb-4d9b-bf48-d415144afa5e/ports", "rel": "bookmark"}]}, {"uuid": "28aad8d9-ec1e-46d6-acaf-cc95ee4bf8f8", "created_at": "2025-05-22T18:21:05.099914+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": "ffcf101c-da9b-4c3f-a1c9-bbf8cae84916", "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/28aad8d9-ec1e-46d6-acaf-cc95ee4bf8f8", "rel": "self"}, {"href": "http://localhost/nodes/28aad8d9-ec1e-46d6-acaf-cc95ee4bf8f8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/28aad8d9-ec1e-46d6-acaf-cc95ee4bf8f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/28aad8d9-ec1e-46d6-acaf-cc95ee4bf8f8/ports", "rel": "bookmark"}]}, {"uuid": "74dcd4a9-8006-4f0e-9f7d-24cb281e40ac", "created_at": "2025-05-22T18:21:05.101520+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": "7aa37367-c158-4d05-8da9-6429fadf29f3", "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/74dcd4a9-8006-4f0e-9f7d-24cb281e40ac", "rel": "self"}, {"href": "http://localhost/nodes/74dcd4a9-8006-4f0e-9f7d-24cb281e40ac", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/74dcd4a9-8006-4f0e-9f7d-24cb281e40ac/ports", "rel": "self"}, {"href": "http://localhost/nodes/74dcd4a9-8006-4f0e-9f7d-24cb281e40ac/ports", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=74dcd4a9-8006-4f0e-9f7d-24cb281e40ac"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get [0.119489s] ... 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-99fe86ad-9c92-4446-a080-579db4ca3116 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 "foo" {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.052425s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-84f8cbcc-6598-4d50-b8c0-662f4ad5815d 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-22T18:21:05.185776+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.054433s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-38ec8600-8190-4ba3-852d-127f7b575d4c 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-22T18:21:05.229794+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-31a99c12-f960-46c8-8075-a61041c91f2b 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-22T18:21:05.229794+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.477310s] ... 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-f93e201a-3f5b-4467-a5f4-5df30e694de2 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-22T18:21:04.958406+00:00", "updated_at": "2025-05-22T18:21:05.231570+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} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.107656s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-18606a00-e5e0-4211-a506-c80a34c071cf 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-22T18:21:05.333927+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_node.TestPost.test_vendor_passthru_methods [0.176223s] ... 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-32b95121-143d-47dc-bdaa-5b9a05da1ce8 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-d0c2075e-ff4f-49b9-a855-21b03030de19 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"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.087350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bf4dcb7-cdcc-4915-a004-2f90b280a9a8 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-22T18:21:05.421522+00:00", "updated_at": null, "automated_clean": true, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver [0.785117s] ... 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-81d9e381-d624-40f2-b66a-bf91927e318d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.154376s] ... 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-5fea7460-0faf-4cb9-8ae9-a07ac38417f8 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.258446s] ... 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-c7278bb5-aeab-44ff-a367-72f8c03e8c54 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.api.controllers.v1.test_node.TestPut.test_clean [0.161998s] ... 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-769612b4-1000-47d2-a140-93d90eacfcde 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.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.174980s] ... 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-808b4916-fc56-472a-a295-7d00b28d584b 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_port.TestPatch.test_replace_physical_network_upgrade [0.263876s] ... 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-b87d4b79-5ea6-4342-9ea2-bece8e5cebb4 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_node.TestPost.test_vendor_passthru_sync [0.117700s] ... 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-eff041e2-6d26-413d-85cc-cf6f4a09cc0d 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.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.203875s] ... 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-d1f08cab-8568-49d0-9a28-096969434a73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.141058s] ... 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-a5f1992f-d78a-41b2-a6d6-18d3e9696962 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk [0.142189s] ... 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-736ff6bb-430f-4f26-b2c6-4bbe33efcd02 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.TestListNodes.test_node_bios_hidden_in_lower_version [0.643134s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cce530a5-1899-4d7a-b1c7-3a027d9e0894 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-22T18:21:05.524864+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-52d8adc4-0edb-491c-b6a1-cfec02b88116 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-22T18:21:05.524864+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nod es/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.101402s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode [0.063129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/4070574a-1e84-41cd-b253-80cc30d567b2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a0382878-be1e-45b1-b469-66863450b94c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "4070574a-1e84-41cd-b253-80cc30d567b2", "created_at": "2025-05-22T18:21:06.127402+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/4070574a-1e84-41cd-b253-80cc30d567b2", "rel": "self"}, {"href": "http://localhost/nodes/4070574a-1e84-41cd-b253-80cc30d567b2", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4070574a-1e84-41cd-b253-80cc30d567b2/ports", "rel": "self"}, {"href": "http://localhost/nodes/4070574a-1e84-41cd-b253-80cc30d567b2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4070574a-1e84-41cd-b253-80cc30d567b2/states", "rel": "self"}, {"href": "http://localhost/nodes/4070574a-1e84-41cd-b253-80cc30d567b2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4070574a-1e84-41cd-b253-80cc30d567b2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4070574a-1e84-41cd-b253-80cc30d567b2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4070574a-1e84-41cd-b253-80cc30d567b2/volume", "rel": "self"}, {"href": "http://localhost/nodes/4070574a-1e84-41cd-b253-80cc30d567b2/volume", "rel": "bookmark"}]} GET /v1/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8c17dee-5e3d-4f29-bcdc-125f4120ce07 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "407cc4d5-0fbc-47ca-bc86-76730b6d03c9", "created_at": "2025-05-22T18:21:06.148019+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/407cc4d5-0fbc-47ca-bc86-76730b6d03c9", "rel": "self"}, {"href": "http://localhost/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9/ports", "rel": "self"}, {"href": "http://localhost/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9/states", "rel": "self"}, {"href": "http://localhost/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9/volume", "rel": "self"}, {"href": "http://localhost/nodes/407cc4d5-0fbc-47ca-bc86-76730b6d03c9/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api [0.180078s] ... 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-0a2ef90b-f069-4317-8248-b9988003ff55 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.TestListNodes.test_node_boot_mode_hidden_in_lower_version [0.059307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9001b580-f001-4fe2-bd09-5bc31e87313a 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-22T18:21:06.196094+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-dab7d4da-c75a-4518-bf77-639d6ee5b128 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-22T18:21:06.196094+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.431464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'a7e19d99-299a-4ea7-a0c4-253e47cd198b', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c06d738-0df3-4522-a399-69ea6b8ed9c5 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-22T18:21:05.929876+00:00", "updated_at": "2025-05-22T18:21:06.186099+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": "a7e19d99-299a-4ea7-a0c4-253e47cd198b"} {2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.106672s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field [0.069619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-600012c1-cfe5-44d3-920a-f324222cfe7e 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-22T18:21:06.252714+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_node.TestPut.test_clean_no_cleansteps [0.137309s] ... 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-c8cd520e-ec57-43ec-b06f-bc3d3e5c6425 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}"} {2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.095692s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.068480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=379d581c-8491-4428-b60f-86350e27315d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04727336-94ea-42b8-91d4-56c3c5cc4fc1 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": "bf4bbd06-eec0-491b-82da-4ebe5e6f6fb7", "instance_uuid": "379d581c-8491-4428-b60f-86350e27315d", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/bf4bbd06-eec0-491b-82da-4ebe5e6f6fb7", "rel": "self"}, {"href": "http://localhost/nodes/bf4bbd06-eec0-491b-82da-4ebe5e6f6fb7", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.033704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=fake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b98db960-40e2-4307-81ce-5f3299f45c0b X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.199330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '2543b846-461c-4a00-b8e1-6a85f7414fd1', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9208b6ac-5086-4805-a45b-da42ea8645c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.059660s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=4f91db19-9120-4252-a71f-f5e4ee6ffefc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51d5ce1e-9169-4bf9-ac81-0add2f95367e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks [0.144787s] ... 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-aa065a8e-8a01-4935-b54a-2c1bfa92c113 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_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.163146s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.099525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a89d824-3bd1-44ef-8cad-d59a15d10c2f 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-22T18:21:06.528946+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-69a3b281-f666-4570-aaee-ac45a0ac307b 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-22T18:21:06.528946+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_notification_utils.APINotifyTestCase.test_node_notification [0.073771s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.080406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2a884ea-464c-48f1-87fc-57fc3e2595ce 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-22T18:21:06.606990+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-d956d269-56ad-46e3-b942-d1963df293fa 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-22T18:21:06.606990+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks_unapproved [0.172295s] ... 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-14447a42-f926-444d-99b2-991879af8934 X-Openstack-Ironic-Api-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.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.091116s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.104366s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-63a2b92e-17d9-4083-944f-185cdcef956c 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-22T18:21:06.703159+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-6db163dd-cc49-4381-bed3-f5c2b7411ba1 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-22T18:21:06.703159+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.329215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'f3560786-4b28-4f77-b739-e73867431330', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dec853ea-62e9-404b-8bef-786bfc2d0b12 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-22T18:21:06.543637+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_notification_utils.APINotifyTestCase.test_port_notification [0.111111s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field [0.090956s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aba74716-50d8-4318-a9f2-9f1231f74bbc 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-22T18:21:06.810752+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi [0.166371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-b09e9ce9-a428-4ec8-9997-e615a1a4061b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_false_field [0.052971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17354d14-aa1c-4117-8c47-9e2a0eecbef2 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-22T18:21:06.867939+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_notification_utils.APINotifyTestCase.test_portgroup_notification [0.101360s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed [0.185303s] ... 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-da9040e1-31b7-432e-b415-0e541ed4c448 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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.308908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '6d919c83-9738-4169-997b-80b180359791', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': 'e55d678c-9487-461c-ac0d-3b9ef1f3ab2c', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cdde10b5-1416-4389-8c0b-2e55167bc726 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-22T18:21:06.921979+00:00", "updated_at": "2025-05-22T18:21:07.072441+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": "e55d678c-9487-461c-ac0d-3b9ef1f3ab2c"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_hidden_in_lower_version [0.216240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-609c5ace-d969-40de-8cea-60b8f10158df 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-22T18:21:07.004631+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-dcec50d7-a6a9-479b-9b50-caf3340f12c5 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-22T18:21:07.004631+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_ramdisk.TestContinueInspection.test_bmc_address_as_none [0.194712s] ... 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-6ec66f0c-e966-4cc7-b16a-c81cd963a8be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ad60a1fb-7322-4740-8f7b-dafb3b93c4ec"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_inspector_compatibility [0.075031s] ... 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-0beb8d10-276a-42ad-a9e8-495705406ba3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ec4688c8-1667-4aa9-99f3-d863d07e52e2"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.200073s] ... 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-85893345-f0f7-4146-9230-dbd17dbf9dde 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}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_invalid_schema [0.076885s] ... 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-ecf6c4ea-e066-4608-b406-326122c81857 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_null_field [0.190931s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4546a439-834e-414f-ac12-a45d662521e2 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-22T18:21:07.246676+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_ramdisk.TestContinueInspection.test_new_api [0.047701s] ... 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-4f194e09-94f6-4e56-98c1-6f198e42ad9f 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": "14cb3933-fc8f-4af5-b9a9-d92282b407b7", "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/14cb3933-fc8f-4af5-b9a9-d92282b407b7", "rel": "self"}, {"href": "http://localhost/nodes/14cb3933-fc8f-4af5-b9a9-d92282b407b7", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "noop", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_no_usable_lookup_data [0.036038s] ... 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-61d5b3ab-b5c2-45cc-856c-685e03dc13c0 X-Openstack-Ironic-Api-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_port.TestPatch.test_replace_singular [0.310882s] ... 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-4b7d78e8-f830-4fcf-ac5a-720fed819b3f 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-22T18:21:07.198993+00:00", "updated_at": "2025-05-22T18:21:07.382510+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_ramdisk.TestContinueInspection.test_old_api_version [0.061283s] ... 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-6e1f555e-f7f7-4eca-b529-7302067fbbd2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.200672s] ... 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-3dcc3c0c-44e4-4be9-9ad4-7d2bda78e96e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_true_field [0.164543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-63e76daa-6ce5-4dc4-a376-d8a97d503ce9 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-22T18:21:07.420953+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_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status [0.094852s] ... 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-d57e8dd7-8eb0-4155-814c-855c59c385bb X-Openstack-Ironic-Api-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_port.TestPatch.test_set_pxe_enabled_false_old_api [0.169929s] ... 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-3a1e76a8-7277-4896-b6dc-51016e7c07fd X-Openstack-Ironic-Api-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_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url [0.129122s] ... 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-49fe2b16-e615-4c01-8ee9-d95e2c369efe X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 [0.223613s] ... 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-00cf3229-4e09-435b-9811-af48ddfec1c1 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.200911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d64a887-0e22-4327-bfd8-669f919461f5 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-22T18:21:07.557191+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-10cd0402-deff-41c8-97ac-9a0a046a1103 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-22T18:21:07.557191+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_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_file_url [0.092581s] ... 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-8342b2e9-bd34-4b3d-94bc-fefe16696340 X-Openstack-Ironic-Api-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_port.TestPatch.test_update_address_invalid_format [0.217880s] ... 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-6971aeca-cfac-446d-96e5-1f61ffa2330d X-Openstack-Ironic-Api-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.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found [0.073741s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/5bde352c-9255-4d45-bc80-c64958516c0a WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-68adad2b-78e5-435d-92c9-0518bbb30930 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 5bde352c-9255-4d45-bc80-c64958516c0a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.166871s] ... 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-6e6de9a3-a59e-4510-b815-9c3dce27ce02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.174905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e382fec8-1f2a-4971-95f8-37fd8336a376 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-22T18:21:07.790148+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-85e2255e-4d97-45c9-ae4d-bc205d93bca6 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-22T18:21:07.790148+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok [0.093147s] ... 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-99291851-7f0a-4b62-9506-a4e1526c2062 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_port.TestPatch.test_update_byaddress_not_allowed [0.147825s] ... 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-9ac826a2-d642-4cda-b7d4-bbee4548d73b X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status [0.085665s] ... 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-5e1ade95-ac90-49db-aa52-f83c83eb1e80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.130668s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4aea74bc-834f-4226-b498-63c5038207b8 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-22T18:21:07.968967+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.161463s] ... 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-abafd55d-bc5c-4c10-b9f4-4255c39f8c19 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code [0.107521s] ... 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-bd29b7e1-18cf-4233-bd70-9ffdebb7e63f 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.TestListNodes.test_node_lessee_hidden_in_lower_version [0.122712s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aeb514a8-7bc1-4696-a6c2-4eb145fc01f5 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-22T18:21:08.086131+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-83cffe74-18c1-4291-8de9-fb14d6e65eb8 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-22T18:21:08.086131+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_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token [0.145650s] ... 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-a46ff666-c377-420f-b774-847d3139bcc7 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_port.TestPatch.test_update_byid [0.279691s] ... 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-588d1efd-874f-40c1-b6ac-2c90d4bd3a0c 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-22T18:21:08.034260+00:00", "updated_at": "2025-05-22T18:21:08.222368+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field [0.105564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d743867-3d89-4c63-a04c-2b17a913652b 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-22T18:21:08.213925+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_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca [0.100617s] ... 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-e8c26f0e-abed-4986-97e4-6c6bb4027195 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.135119s] ... 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-f0d8b1f4-7baa-4df6-82df-efbc609b65c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present [0.101643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2a0b2e2-5950-40ed-9f9e-b4f97d9fca19 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-22T18:21:08.320052+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_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version [0.116508s] ... 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-37f63166-4e7e-4a3d-b7d7-43a0b84055ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.122247s] ... 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-035756d8-8ae6-4fe0-8751-5d2021f5601a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data [0.094888s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f192e496-b825-4b55-8bcd-96e9e40f6699 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "79a1d213-2c11-49fd-b34e-7dc4c3c1df62", "created_at": "2025-05-22T18:21:08.420733+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/79a1d213-2c11-49fd-b34e-7dc4c3c1df62", "rel": "self"}, {"href": "http://localhost/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62/ports", "rel": "self"}, {"href": "http://localhost/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62/states", "rel": "self"}, {"href ": "http://localhost/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62/volume", "rel": "self"}, {"href": "http://localhost/nodes/79a1d213-2c11-49fd-b34e-7dc4c3c1df62/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name [0.095192s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-39476ebc-0004-4854-ad34-fc4bdab7e6dd 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_port.TestPatch.test_update_in_inspecting_allowed [0.244750s] ... 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-eca8792d-9ba1-4ecb-a873-f9ef4df8535d 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-22T18:21:08.309487+00:00", "updated_at": "2025-05-22T18:21:08.463304+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} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned [0.151046s] ... 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-06c21e87-6ae7-4e9f-90dc-7624d90119e6 X-Openstack-Ironic-Api-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-cd9894d5-fdc1-4a0f-8d14-015fbe9d7d84 X-Openstack-Ironic-Api-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.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_for_anaconda [0.092287s] ... 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-f5ecd6ae-fd98-43e1-a429-bf24f1394c2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version [0.123338s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a581f4a0-ab78-41f7-a2b0-33d3b1f7e52b 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-22T18:21:08.528011+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-db2460e0-7062-4439-b3d5-43b0d5780d14 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-22T18:21:08.528011+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.107276s] ... 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-2558239d-e86f-46d8-afba-5f6b77d8902e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json [0.112393s] ... 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-7b86e8a1-3f5f-44a1-ac0d-dd8432be9e68 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.TestListNodes.test_node_owner_hidden_in_lower_version [0.138689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1cf80848-f11c-487c-bb0d-d3ce50211759 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-22T18:21:08.659389+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-2e1525b2-fb9a-43ca-901d-13beacd84ac8 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-22T18:21:08.659389+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_node.TestPut.test_power_state_by_name [0.106800s] ... 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-979fb50a-2f5e-428c-a3b9-a27d35a55f9c 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_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error [0.124734s] ... 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-4f3b96d0-a129-44b4-b06c-15faf41601fd 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_port.TestPatch.test_update_in_inspecting_not_allowed [0.331994s] ... 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-edf3c67a-fbd2-4005-b6dd-abcea268b4b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.137937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee5616b7-9017-4ae6-b221-024d8491ac41 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-22T18:21:08.798941+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_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error [0.105998s] ... 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-12d09f51-c7c4-459e-8cc8-a401d3ff3242 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.150031s] ... 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-1c303b1f-0f43-4ddd-acc0-1c279354ba06 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.123677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/93dc7a0d-e8bd-44d9-a947-0fe083367cc9 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-65c5e618-97d6-4b59-b6df-808407580f27 X-Openstack-Ironic-Api-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 93dc7a0d-e8bd-44d9-a947-0fe083367cc9 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error [0.074680s] ... 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-8adf08f4-2ac6-432e-8cbb-6b5a904319ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.71 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version [0.064236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/c17e4090-3b74-4b5d-ab26-09115344ea4f WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0a4f4d8e-3251-463b-84b8-9e1a2c3e5a72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.183729s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f53e710-0e3a-494e-aac1-9c99ced87dd3 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-22T18:21:09.005592+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": "akindofmagic", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_off_with_disable_power_off [0.217731s] ... 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-aa0b6393-b99e-4834-9c70-1e2f0ddf66d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to set node power state to power off.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name [0.094918s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/CUSTOM_DT1 GOT Response: 204 No Content Openstack-Request-Id: req-c771683f-c2a3-4a93-b670-799141578812 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected [0.137377s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a6bd7bf2-5508-4767-b7ff-d58e7773c352 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "03e2f6eb-3deb-4a98-a69d-0f56f9324ad1", "created_at": "2025-05-22T18:21:09.150565+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/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1", "rel": "self"}, {"href": "http://localhost/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1/ports", "rel": "self"}, {"href": "http://localhost/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1/states", "rel": "self"}, {"href": "http://localhost/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1/volume", "rel": "self"}, {"href": "http://localhost/nodes/03e2f6eb-3deb-4a98-a69d-0f56f9324ad1/volume", "rel": "bookmark"}]} GET /v1/nodes/d84401bb-141d-4607-ab3d-c584718eb3da WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-130553da-dd34-4309-87a4-66e1aede6ed8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "d84401bb-141d-4607-ab3d-c584718eb3da", "created_at": "2025-05-22T18:21:09.173603+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/d84401bb-141d-4607-ab3d-c584718eb3da", "rel": "self"}, {"href": "http://localhost/nodes/d84401bb-141d-4607-ab3d-c584718eb3da", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d84401bb-141d-4607-ab3d-c584718eb3da/ports", "rel": "self"}, {"href": "http://localhost/nodes/d84401bb-141d-4607-ab3d-c584718eb3da/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d84401bb-141d-4607-ab3d-c584718eb3da/states", "rel": "self"}, {"href": "http://localhost/nodes/d84401bb-141d-4607-ab3d-c584718eb3da/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d84401bb-141d-4607-ab3d-c584718eb3da/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d84401bb-141d-4607-ab3d-c584718eb3da/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d84401bb-141d-4607-ab3d-c584718eb3da/volume", "rel": "self"}, {"href": "http://localhost/nodes/d84401bb-141d-4607-ab3d-c584718eb3da/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.279960s] ... 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-b6061ec2-0360-4c43-88f7-6c79248daae0 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-22T18:21:09.043216+00:00", "updated_at": "2025-05-22T18:21:09.224773+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_runbook.TestDelete.test_delete_by_name_non_existent [0.087596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c9bb20df-c533-43c7-8cf3-d0b566b9721c X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.104741s] ... 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-070a4c63-d6bc-4e53-96f0-ccc42ec80244 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.127655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34b6f2a3-5d4a-414b-9535-66d1a3cf31a6 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-22T18:21:09.285278+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-da0a23a9-c304-4ad0-9156-746058d65969 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-22T18:21:09.285278+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reserv ation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.105248s] ... 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-eff17f8e-6c56-4a5a-bf76-9e6f83f9fb34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_uuid [0.131441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/a441940f-148b-468a-a081-997b3b6ade57 GOT Response: 204 No Content Openstack-Request-Id: req-5512d457-b355-4a89-af8d-227322d584ba 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_port.TestPatch.test_update_pxe_enabled_allowed [0.184483s] ... 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-96555fe7-1e6e-4179-b7e8-c81e952ca29b 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-22T18:21:09.290962+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.097303s] ... 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-b878ff7d-78e1-4e58-aac4-d9b098916168 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.114822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-446213b6-c56e-4f25-b3c9-e084c9ba6c05 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-22T18:21:09.414542+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-f1e243d6-86cf-4835-a351-6d1e00bea947 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-22T18:21:09.414542+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_runbook.TestDelete.test_delete_invalid_api_version [0.112812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/36a6d2d2-3458-48c2-a4fa-2067f2e0518c 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_port.TestPatch.test_update_pxe_enabled_old_api_version [0.104618s] ... 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-fd6ff22f-9ec8-41f4-9a65-a772245e8638 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_old_api_version [0.065188s] ... 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.TestListNodes.test_node_protected_with_reason [0.099604s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-df8bb1fa-3037-4e89-8cd9-10eb876cab65 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-22T18:21:09.531735+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": true, "protected_reason": "reason!", "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address [0.048258s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_empty [0.071338s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c58b9d6c-3f77-4fc1-904e-b8834252ec53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired [0.154814s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8d5af6f-85fd-4b00-8246-d6e653950dbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "3733787d-5a7c-47b6-99bb-80b3266614f2", "created_at": "2025-05-22T18:21:09.645085+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/3733787d-5a7c-47b6-99bb-80b3266614f2", "rel": "self"}, {"href": "http://localhost/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2/ports", "rel": "self"}, {"href": "http://localhost/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2/states", "rel": "self"}, {"href": "http://localhost/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2/volume", "rel": "self"}, {"href": "http://localhost/nodes/3733787d-5a7c-47b6-99bb-80b3266614f2/volume", "rel": "bookmark"}]} GET /v1/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-38dfe27e-e2e8-4bcc-9801-54040931749b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "3a9280ff-ef87-4d77-a0f5-3dddc29927b4", "created_at": "2025-05-22T18:21:09.695620+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/3a9280ff-ef87-4d77-a0f5-3dddc29927b4", "rel": "self"}, {"href": "http://localhost/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4/ports", "rel": "self"}, {"href": "http://localhost/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4/states", "rel": "self"}, {"href": "http://localhost/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4/volume", "rel": "self"}, {"href": "http://localhost/nodes/3a9280ff-ef87-4d77-a0f5-3dddc29927b4/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one [0.087112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3f620458-6f02-435e-97e8-54cc66729466 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one_wrong_version [0.096416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2a8a7e53-45e0-4ad7-a54a-ba117be2d61a 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_port.TestPost.test_create_port [0.230533s] ... 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-076f9c85-d2ba-4376-9376-357e026dab80 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-5afab91b-0563-4196-b099-5abbf848c09b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version [0.120207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-32320c98-5fd5-4930-b174-45a53f45d59a 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-22T18:21:09.798792+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-94c6ec03-f87c-44a2-93af-be1489cac8c3 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-22T18:21:09.798792+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected ": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version [0.120343s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81e4ced2-c774-47bd-bfe2-67ca6f107c1f 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-22T18:21:09.928153+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-5f43aba5-d8c1-4988-ad31-46aa45e7be8e 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-22T18:21:09.928153+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.525956s] ... 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-f39258b8-60c9-4e81-8dd6-f6af39b59f60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.232714s] ... 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-ca278d43-5961-4606-a386-9e5a648b89a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason [0.096150s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0912978d-0516-4ef1-9e58-42795386fe28 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-22T18:21:10.047895+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.093615s] ... 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-b22291af-6444-4782-a3d6-34a844afe3b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.117003s] ... 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-bd69d636-04e8-490b-b27b-622348daf446 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot [0.156787s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/06976465-cc3f-4b0e-be04-229075175fc6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54293583-15b7-433c-93a9-b1b75ba19f3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "06976465-cc3f-4b0e-be04-229075175fc6", "created_at": "2025-05-22T18:21:10.175751+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/06976465-cc3f-4b0e-be04-229075175fc6", "rel": "self"}, {"href": "http://localhost/nodes/06976465-cc3f-4b0e-be04-229075175fc6", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/06976465-cc3f-4b0e-be04-229075175fc6/ports", "rel": "self"}, {"href": "http://localhost/nodes/06976465-cc3f-4b0e-be04-229075175fc6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/06976465-cc3f-4b0e-be04-229075175fc6/states", "rel": "self"}, {"href": "http://localhost/nodes/06976465-cc3f-4b0e-be04-229075175fc6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/06976465-cc3f-4b0e-be04-229075175fc6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/06976465-cc3f-4b0e-be04-229075175fc6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/06976465-cc3f-4b0e-be04-229075175fc6/volume", "rel": "self"}, {"href": "http://localhost/nodes/06976465-cc3f-4b0e-be04-229075175fc6/volume", "rel": "bookmark"}]} GET /v1/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-153a4b8b-da51-4a34-9d73-5c4c99abc8ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "2c6c3f9c-f480-4bd4-a128-8693187cf0c2", "created_at": "2025-05-22T18:21:10.211743+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/2c6c3f9c-f480-4bd4-a128-8693187cf0c2", "rel": "self"}, {"href": "http://localhost/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6c3f9c-f480-4bd4-a128-8693187cf0c2/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.227863s] ... 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-48fc6eb3-01f5-4899-9076-fcd31f8aa230 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-22T18:21:10.234130+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-bed2485e-ed27-4a9e-aeac-763e772862f0 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-22T18:21:10.234130+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"} {2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_post [0.495295s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.132407s] ... 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-1a2400f8-1c0a-430b-a263-29c85bd4e93c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_put [0.059499s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version [0.136646s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ddae3ecf-250e-433b-a2e4-31e2e19d01ac 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-22T18:21:10.334375+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-0ad829f0-90d8-46e5-85de-194a630f5520 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-22T18:21:10.334375+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_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.091142s] ... 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-e6e0634d-f46b-4997-858d-de5e57a31961 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.101086s] ... 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-70f04fb8-7c7d-405c-a473-f16a25189e1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00"} {2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_wrong_version [0.133670s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dc643afa-23f0-4032-ab24-7f8d0b3ed973 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_port.TestPost.test_create_port_doesnt_contain_id [0.255265s] ... 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-85bbaef5-2175-4a71-a2eb-726d6a192016 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-22T18:21:10.456656+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-f96097a2-b012-4bdc-a66c-2f16d55870d7 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-22T18:21:10.456656+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"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.141311s] ... 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-f7373dbc-dae6-44db-af8e-fc2b24f4b912 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_multiple_shards [0.146591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-52547051-1f4f-42b9-b0ef-9030a6f1ddaa 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}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode [0.182583s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ec4dffa1-3ce7-4d5d-8598-f209ff1c9d98/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e095a9a7-9fe2-4443-9cbf-7d1883ede3af 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/d71129a2-afa9-47cb-9456-d528b2f3107d/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7675ba77-c2c6-44af-8c2b-c9f037fa6878 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} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.132363s] ... 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-31cecaf0-f14d-40a7-b6c2-ffd99008f18e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_nodes_but_no_shards [0.112199s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-edff9f88-e685-4bda-95cf-380554ec32ea 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}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.255622s] ... 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-c80ead36-78c4-4369-b990-c4e3329439a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version [0.140631s] ... 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-ae8d656f-b3c7-4924-afd9-970d76f15ee5 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-bf2c78b0-cdcf-4d2a-8764-fd63abca98d8 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} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.116031s] ... 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-3cc304c7-7455-434f-8853-edceb7f4ace0 X-Openstack-Ironic-Api-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_shard.TestListShards.test_one_shard [0.093842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9f5f076-d7f3-4b7a-9b4a-9ce0182cb012 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.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.059593s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.106646s] ... 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-f00e0ce6-2d3b-4a8c-a97d-7a47774ee50e 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}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.089260s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.250001s] ... 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/63c60b29-9b1d-4184-a463-c29e4b00b91a Openstack-Request-Id: req-47cd00fb-996d-4a5a-bfeb-a7b43c15de32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "63c60b29-9b1d-4184-a463-c29e4b00b91a", "created_at": "2025-05-22T18:21:11.005448+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/63c60b29-9b1d-4184-a463-c29e4b00b91a", "rel": "self"}, {"href": "http://localhost/ports/63c60b29-9b1d-4184-a463-c29e4b00b91a", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/63c60b29-9b1d-4184-a463-c29e4b00b91a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b9abd2d-99b4-499e-914a-276a0a6cc422 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "63c60b29-9b1d-4184-a463-c29e4b00b91a", "created_at": "2025-05-22T18:21:11.005448+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/63c60b29-9b1d-4184-a463-c29e4b00b91a", "rel": "self"}, {"href": "http://localhost/ports/63c60b29-9b1d-4184-a463-c29e4b00b91a", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.116256s] ... 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-eb24f8ae-3038-4fa5-b544-204e6941f880 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.096277s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.104785s] ... 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-564866c5-9c59-4c89-9af3-b9b480d60a50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.053343s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.147030s] ... 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-6a2e1cb5-1c28-4e2a-b181-155cbdcf0989 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_complex_path [0.044086s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_slash [0.062025s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.117762s] ... 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-9404c11c-3fbe-4486-962e-30d915f67861 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_tilde [0.044689s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.520267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/eggs/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0667599-7005-416a-bba8-a4c73fae4d03 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"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.087892s] ... 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-cfd2ff01-59a0-4eef-a791-2f114d1d19cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.188947s] ... 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-8a9f5743-5ad2-4157-b915-131637efd624 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_incomplete_escape [0.089957s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version [0.104903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0c361ce-81a7-47ae-8534-cd925325ff90 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-22T18:21:11.410559+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-92e32d02-369c-4855-8476-f3b7038942e7 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-22T18:21:11.410559+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_utils.TestApiUtils.test_apply_jsonpatch_with_invalid_escape_sequence [0.053272s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.094520s] ... 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-731ff96e-5ee1-41d3-8779-480d484458fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_slash [0.041104s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid [0.097679s] ... 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-238bf9cf-95cc-4465-adb2-d3df28b7fb8d 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_utils.TestApiUtils.test_apply_jsonpatch_with_tilde [0.094900s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.129943s] ... 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-c7d4d03b-8062-4566-bea0-08446a9083ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.068359s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string [0.291330s] ... 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-616ac66f-a3ed-4518-ac7b-cc2d02110d92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot [0.170956s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ee516473-7f24-4b8e-9d0e-95b8a62f3331/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7bff6e65-7fdf-4955-934f-0020f1d1191b 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/d53fbe55-e6a7-48a7-bf73-31f780e99076/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff931d49-7d6e-4e91-8dc0-63f653995170 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} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.060327s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_with_disable_power_off [0.154887s] ... 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-0d1526d7-1715-439f-b65d-2ac2f790ec0d 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.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.063038s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version [0.101971s] ... 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-fe7b39d8-b038-411c-a4eb-9678480f52fa 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-bf262099-dffd-44f7-b8da-6700ac9acf1d 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} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.161139s] ... 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-8d787934-a503-4f2b-83b9-de3837928111 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.073315s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.060770s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90225b39-5c1d-4f50-8631-a7c16ed833da 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-22T18:21:11.861782+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-38bde3a1-10da-47fc-8668-c9481f74f80d 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-22T18:21:11.861782+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.075780s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.093061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c4a84774-f7ec-4197-a296-0c1791b35d48 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-22T18:21:11.958552+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-3401c024-241a-4e57-b0e7-231436f3c15c 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-22T18:21:11.958552+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.187963s] ... 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-ed55982d-5965-422e-9ce7-6a2dea2c926b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.123601s] ... 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-769b6a3f-c615-47f2-9ceb-8e330e1609d5 X-Openstack-Ironic-Api-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_node.TestListNodes.test_one [0.047586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21ec11f3-ff0d-47f7-8b66-42d81e513484 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_utils.TestApiUtils.test_get_patch_values_success [0.077172s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization [0.049221s] ... 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-a06573d2-4020-4f25-a6c9-4c23c5298b6b 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_utils.TestApiUtils.test_is_path_removed_replace [0.061986s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.089086s] ... 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-ff12bdf4-31ab-4253-be66-9b6701d1cdb7 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": "ee9051d4-c66d-4a3e-a60c-b32598427a56", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/ee9051d4-c66d-4a3e-a60c-b32598427a56", "rel": "self"}, {"href": "http://localhost/portgroups/ee9051d4-c66d-4a3e-a60c-b32598427a56", "rel": "bookmark"}]}, {"uuid": "b944627c-8b8d-4c68-b118-74a84eddbb3a", "address": "52:54:00:cf:2d:31", "name": "pg-1", "links": [{"href": "http://localhost/v1/portgroups/b944627c-8b8d-4c68-b118-74a84eddbb3a", "rel": "self"}, {"href": "http://localhost/portgroups/b944627c-8b8d-4c68-b118-74a84eddbb3a", "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-2afcd1b7-ad79-4cfc-8f5e-ae3e663c56b0 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": "ee9051d4-c66d-4a3e-a60c-b32598427a56", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/ee9051d4-c66d-4a3e-a60c-b32598427a56", "rel": "self"}, {"href": "http://localhost/portgroups/ee9051d4-c66d-4a3e-a60c-b32598427a56", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=ee9051d4-c66d-4a3e-a60c-b32598427a56"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.082786s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.176098s] ... 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-6bacea8c-6f43-467d-b28a-f00702a793e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.052842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4a1e1968-9f3b-4551-a44d-30b0b42812aa 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-22T18:21:12.219715+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.076941s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.275838s] ... 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-9aaac773-569a-4198-851f-442b13a392e5 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-22T18:21:12.232642+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_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.109565s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4945adcf-eaec-4238-acd4-b5a9a3a155d2 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-22T18:21:12.310612+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_utils.TestApiUtils.test_is_path_removed_success [0.089897s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.038927s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.207263s] ... 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-accbe142-15a9-4a7a-ae7b-c1a6ed476426 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.082306s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.157518s] ... 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-8b24990b-df4f-4a23-a8ea-10a539649b5f X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.063658s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.119433s] ... 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-a5ae429b-f096-48bd-a361-c3d83162bc8b 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": "7790188c-deab-494b-8278-fb48e9de310c", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/7790188c-deab-494b-8278-fb48e9de310c", "rel": "self"}, {"href": "http://localhost/ports/7790188c-deab-494b-8278-fb48e9de310c", "rel": "bookmark"}]}, {"uuid": "f6738e31-a830-4ed5-bcaa-92cb7b79f062", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/f6738e31-a830-4ed5-bcaa-92cb7b79f062", "rel": "self"}, {"href": "http://localhost/ports/f6738e31-a830-4ed5-bcaa-92cb7b79f062", "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-aa5665b3-c3bc-4861-9977-eaf7e10be65c 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": "7790188c-deab-494b-8278-fb48e9de310c", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/7790188c-deab-494b-8278-fb48e9de310c", "rel": "self"}, {"href": "http://localhost/ports/7790188c-deab-494b-8278-fb48e9de310c", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=7790188c-deab-494b-8278-fb48e9de310c"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.146766s] ... 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-5f92c0dc-32c7-43de-9aee-f5ecd6ac058c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.060109s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/123 123/ports WITH {} GOT Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for node: 123 123\"}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.076076s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.060392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-549f2b07-3ee0-44b2-a2a9-898e6d786a8d 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-22T18:21:12.620442+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_port.TestPost.test_create_port_local_link_connection_missing_optional [0.192221s] ... 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-40f7b0af-dbb1-4a13-82f6-3aada099b0f2 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-22T18:21:12.635841+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.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields [0.082740s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.044287s] ... 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-a43c2584-bff9-47e4-8ce1-052b6f0c9d28 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.135907s] ... 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-e8fe2689-706a-4533-a28d-04326c7022c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields [0.059335s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.052501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_special_fields [0.046256s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy [0.093186s] ... 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-8ace7c7d-bc68-46fa-976a-1eab67ada0fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.142035s] ... 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-523fee7a-4020-413b-b460-c09d582618ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.089747s] ... 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-91cf38fe-80d1-4082-b78a-32dddf924ff6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema [0.067064s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict [0.051541s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.065423s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cfefff92-7076-4c6a-9e07-5904e1e5a0cf 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": "51f49322-8561-49b8-9cb5-ce98237a15e6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/51f49322-8561-49b8-9cb5-ce98237a15e6", "rel": "self"}, {"href": "http://localhost/nodes/51f49322-8561-49b8-9cb5-ce98237a15e6", "rel": "bookmark"}]}, {"uuid": "95785e49-08ad-4d19-b1c1-446edd3984b5", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/95785e49-08ad-4d19-b1c1-446edd3984b5", "rel": "self"}, {"href": "http://localhost/nodes/95785e49-08ad-4d19-b1c1-446edd3984b5", "rel": "bookmark"}]}, {"uuid": "b3748c47-ca85-4444-b1b2-54da6146c181", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/b3748c47-ca85-4444-b1b2-54da6146c181", "rel": "self"}, {"href": "http://localhost/nodes/b3748c47-ca85-4444-b1b2-54da6146c181", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request [0.108998s] ... 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-78a94929-6dee-41bc-9857-30c175ae9dfc X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.144833s] ... 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-580846a5-0a8e-410b-bd2a-fff342f027e8 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-22T18:21:12.931627+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.067926s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.081159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-901dbecc-df6f-43b6-b071-5a82b084d276 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": "f71680d3-353e-4d8f-844e-f520198bccec", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f71680d3-353e-4d8f-844e-f520198bccec", "rel": "self"}, {"href": "http://localhost/nodes/f71680d3-353e-4d8f-844e-f520198bccec", "rel": "bookmark"}]}, {"uuid": "5c088750-07e3-45d7-b49b-19e6b67bc6c6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/5c088750-07e3-45d7-b49b-19e6b67bc6c6", "rel": "self"}, {"href": "http://localhost/nodes/5c088750-07e3-45d7-b49b-19e6b67bc6c6", "rel": "bookmark"}]}, {"uuid": "42bb6283-effc-450c-8b2d-12f7fd1917cd", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/42bb6283-effc-450c-8b2d-12f7fd1917cd", "rel": "self"}, {"href": "http://localhost/nodes/42bb6283-effc-450c-8b2d-12f7fd1917cd", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.041507s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state [0.136458s] ... 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-54026051-424b-4e5a-8a8e-a0c648dfbed9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.074740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3a0fd9e0-fdcd-4ac8-b5c2-e913a60be5b6 X-Openstack-Ironic-Api-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-7140184b-5d68-4e81-a511-6b2f86131d9b X-Openstack-Ironic-Api-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-14b185dd-68c2-43f2-a335-40d5dcb2dff9 X-Openstack-Ironic-Api-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-0da96b46-857d-498b-8641-889f0f63978f X-Openstack-Ironic-Api-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-03e3a7ff-b0b3-4b53-809f-d8c970cd322a X-Openstack-Ironic-Api-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-2d08e5a6-5f7e-4850-9761-02eb9be31010 X-Openstack-Ironic-Api-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-0345ca75-4ab2-4d5e-8d5e-b674fb3a75a8 X-Openstack-Ironic-Api-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-8cf15b65-d457-48b1-8ef3-532458fce378 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_missing_address_fails [0.111012s] ... 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-304ac938-03b2-427b-8d49-00072c9d9b22 X-Openstack-Ironic-Api-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.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy [0.081901s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed [0.069373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8682bcde-12b9-4113-ae0f-83d153a8f0ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden [0.061700s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.132278s] ... 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-15b8b1ea-a94c-40cb-9852-581e9edcdefa X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project [0.056499s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address [0.144028s] ... 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-4edc9321-65a0-45d7-b576-a6093761d916 X-Openstack-Ironic-Api-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_node.TestListNodes.test_unassociated_nodes_insensitive [0.125456s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0898b24-055f-48b6-8596-285aabdf9ef5 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": "d6c801cc-d5ca-4d81-bf4d-98cc34f06f86", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d6c801cc-d5ca-4d81-bf4d-98cc34f06f86", "rel": "self"}, {"href": "http://localhost/nodes/d6c801cc-d5ca-4d81-bf4d-98cc34f06f86", "rel": "bookmark"}]}, {"uuid": "fddf4fbb-f4d5-4f6e-a710-4f40040cac21", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fddf4fbb-f4d5-4f6e-a710-4f40040cac21", "rel": "self"}, {"href": "http://localhost/nodes/fddf4fbb-f4d5-4f6e-a710-4f40040cac21", "rel": "bookmark"}]}, {"uuid": "7d8a2dbc-bb71-4133-9f19-e7538e737fff", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7d8a2dbc-bb71-4133-9f19-e7538e737fff", "rel": "self"}, {"href": "http://localhost/nodes/7d8a2dbc-bb71-4133-9f19-e7538e737fff", "rel": "bookmark"}]}]} GET /v1/nodes?associated=FALSE WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a4750fd-2bef-498b-96d1-4f1f956abb33 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": "d6c801cc-d5ca-4d81-bf4d-98cc34f06f86", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d6c801cc-d5ca-4d81-bf4d-98cc34f06f86", "rel": "self"}, {"href": "http://localhost/nodes/d6c801cc-d5ca-4d81-bf4d-98cc34f06f86", "rel": "bookmark"}]}, {"uuid": "fddf4fbb-f4d5-4f6e-a710-4f40040cac21", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fddf4fbb-f4d5-4f6e-a710-4f40040cac21", "rel": "self"}, {"href": "http://localhost/nodes/fddf4fbb-f4d5-4f6e-a710-4f40040cac21", "rel": "bookmark"}]}, {"uuid": "7d8a2dbc-bb71-4133-9f19-e7538e737fff", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7d8a2dbc-bb71-4133-9f19-e7538e737fff", "rel": "self"}, {"href": "http://localhost/nodes/7d8a2dbc-bb71-4133-9f19-e7538e737fff", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin [0.080576s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.174373s] ... 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-33b699de-e41b-4f49-ad83-0f12e0a9eba2 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}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch [0.079435s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.116457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=False&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-524f6a8f-679c-4bb8-a888-67d23cb7074f 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": "855328ad-f60e-4f3a-b8e7-304faa2e1241", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/855328ad-f60e-4f3a-b8e7-304faa2e1241", "rel": "self"}, {"href": "http://localhost/nodes/855328ad-f60e-4f3a-b8e7-304faa2e1241", "rel": "bookmark"}]}, {"uuid": "e9227bea-058c-4ba2-9e11-30682620dd1f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e9227bea-058c-4ba2-9e11-30682620dd1f", "rel": "self"}, {"href": "http://localhost/nodes/e9227bea-058c-4ba2-9e11-30682620dd1f", "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=e9227bea-058c-4ba2-9e11-30682620dd1f"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.167516s] ... 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-7645cf20-153a-487e-9471-fe931b3d6128 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner [0.086161s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.115517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-22f3cc51-6a2a-4d71-9e08-5be04686d6bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.045992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-25bd9d7f-7a04-4a20-8c4e-6c0b72f45913 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve [0.114432s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.053150s] ... 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-c741a38c-caf0-4f30-8f9e-52caf08e8bbd 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_port.TestPost.test_create_port_node_uuid_not_found [0.226435s] ... 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-04679045-5e7c-47dc-b798-74106efc49ec X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.082875s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.057428s] ... 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-e2ecaf98-d957-49e5-9b20-d3250fe26fe4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_invalid_uuid_or_name [0.044825s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1234~1234~1234 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-97d09ea4-d740-418f-8ddb-de8271eaaf37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received 1234~1234~1234.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound [0.093969s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden [0.087204s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.132156s] ... 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-190860eb-6439-4ff9-abc2-d9e5e1d3f03f 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": "1c7a63a6-6652-484f-a183-8f7dce07bac7", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1c7a63a6-6652-484f-a183-8f7dce07bac7", "rel": "self"}, {"href": "http://localhost/volume/connectors/1c7a63a6-6652-484f-a183-8f7dce07bac7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "eded162e-d39c-4ce7-81a0-4531d9ae1b59", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/eded162e-d39c-4ce7-81a0-4531d9ae1b59", "rel": "self"}, {"href": "http://localhost/volume/connectors/eded162e-d39c-4ce7-81a0-4531d9ae1b59", "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-57e54143-f8c4-440b-9642-43861ebf867b 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": "1c7a63a6-6652-484f-a183-8f7dce07bac7", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1c7a63a6-6652-484f-a183-8f7dce07bac7", "rel": "self"}, {"href": "http://localhost/volume/connectors/1c7a63a6-6652-484f-a183-8f7dce07bac7", "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=1c7a63a6-6652-484f-a183-8f7dce07bac7"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.287631s] ... 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-2c3e6d97-2bec-4420-8cf4-5c0edfcbba63 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-22T18:21:13.883158+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.085150s] ... 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-73a9e65b-11dc-4966-a7fb-06d176227fd5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix [0.108463s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve [0.083241s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.104395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/volume/connectors WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port [0.101923s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.153377s] ... 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-507b3c33-2258-4ff1-8601-08a61d219b6f 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"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden [0.120563s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.386267s] ... 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-b349a633-9904-4ed9-a69a-63d649736737 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-22T18:21:14.239070+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.105449s] ... 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-59409f4a-23b3-4b97-88f2-f3fcad6eeb28 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}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound [0.122062s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.137048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68903e2c-0fd3-46cd-96d1-8dc6376242f4 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-22T18:21:14.436780+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_node.TestPut.test_provision_rescue_in_allowed_states [1.099269s] ... 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-63a7e939-7ecc-4fb6-8827-7a42201eae8f 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-cb543334-b83c-4342-8c86-cd0c75939e56 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-b5d51b94-cbc8-44b3-96d5-79915aa20be3 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-932778a2-2c2b-409a-b306-47d54ddda31c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.124956s] ... 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-187bffb5-dd7b-48ee-9ad3-942fe0dc78ef 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": "7854cb80-38c0-4bf1-b896-8d9fff833bad", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/7854cb80-38c0-4bf1-b896-8d9fff833bad", "rel": "self"}, {"href": "http://localhost/volume/targets/7854cb80-38c0-4bf1-b896-8d9fff833bad", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ac980518-f1c3-4492-baa7-f3eac677660d", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/ac980518-f1c3-4492-baa7-f3eac677660d", "rel": "self"}, {"href": "http://localhost/volume/targets/ac980518-f1c3-4492-baa7-f3eac677660d", "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-f52d40d8-28b6-4de2-ba99-4064c63ef0b1 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": "7854cb80-38c0-4bf1-b896-8d9fff833bad", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/7854cb80-38c0-4bf1-b896-8d9fff833bad", "rel": "self"}, {"href": "http://localhost/volume/targets/7854cb80-38c0-4bf1-b896-8d9fff833bad", "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=7854cb80-38c0-4bf1-b896-8d9fff833bad"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.215487s] ... 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-23c5842b-b2c6-42c3-a3ad-5a507af42405 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-22T18:21:14.511679+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.326695s] ... 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-90669a7d-dc6f-46b0-b1ca-08b8bbeaa66e 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-22T18:21:14.584508+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.068795s] ... 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-69c38db9-e76f-48d2-b89d-caa917ed4f8e X-Openstack-Ironic-Api-Maximum-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.050902s] ... 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.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.145158s] ... 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-dacd9a57-0f34-481b-8353-6e655e582f46 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.316459s] ... 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-4ca657fb-60eb-4e57-a1db-238bcb9edc23 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-17ddd678-9593-4dbd-8785-eac9aa9324c3 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-6d1601ed-4ad5-4929-b049-7bd88cf0d80b 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-8bb7c127-25a6-486a-833c-134a0cb37d18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.132019s] ... 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-d3711bce-7f29-45e0-a18f-8bfd7b2379e5 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-22T18:21:14.830037+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.117927s] ... 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-3eeca6ab-3507-46c7-835d-b193b681673a 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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.123571s] ... 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-f237b371-7d05-4315-9785-df5197f83bee X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.135886s] ... 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-f56b3add-dc40-480f-b004-c135fef2b363 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.TestNodeVmedia.test_attach [0.354023s] ... 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-86403fcc-1fdb-4f02-ba18-b5ac52522c3e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_device_type [0.054681s] ... 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-36642c25-ed25-4f90-b116-a55ba3522b36 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_image_url [0.062684s] ... 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-4711d583-f31c-4994-abdf-8cf94b7fde54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unsupported or missing URL scheme: \", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_device_type [0.045571s] ... 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-79743584-0ae9-4486-bb00-1036eea5706e 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.220324s] ... 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-82858b07-9145-4210-907d-5996df6d797a 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-1df10605-2cad-4fec-b7e4-ed7261e1c619 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-a2cf5d25-9f0e-48da-a740-3d328fe6e960 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.TestNodeVmedia.test_attach_missing_image_url [0.056874s] ... 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-0258a7ca-861d-4aae-83f3-c8bfe18fc094 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_required_only [0.051589s] ... 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-975d69ea-a8d7-4367-acd6-5aaa99e8eb02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_wrong_version [0.034119s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cdrom', 'image_url': 'http://image'} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_everything [0.071002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 204 No Content Openstack-Request-Id: req-357eb244-1fc1-4de2-8ed7-54828fef1e82 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_port.TestPost.test_create_port_novif_pxe_noportgroup [0.856257s] ... 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-e0dccb91-9ac4-4e20-9a80-d2864f72ab57 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-22T18:21:15.475028+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.270936s] ... 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-38e65f61-91ee-4d42-856b-74766d53b98f 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-2b4f006e-2259-4da9-9846-394567fd131b 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-b9a84296-cb0b-41e4-abbf-157ac94a174c 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-2215863d-9a03-494c-901c-4eff96bb9d84 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-47e165e0-9ad6-493e-bd6f-835e1efcebf9 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_several_via_argument [0.118438s] ... 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-41ecb29b-d7a9-4c8b-82a2-62b4a8b32b4c 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.TestPut.test_provision_with_cleansteps_not_clean [0.119487s] ... 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-897d2000-833f-44bd-bfed-bc2b5334b234 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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.663049s] ... 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-a7a03507-054d-4b39-a86f-7f580eb5dc83 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-22T18:21:15.597127+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_argument [0.123088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom GOT Response: 204 No Content Openstack-Request-Id: req-18358fb9-a26d-4c71-8da5-cf1a6d91125e 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_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.240971s] ... 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-f6276eda-ef6a-47b9-a774-d7aa63f25c57 X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.128494s] ... 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-ca1f0ca1-78ff-4e1a-b885-22b31f45e7ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.110432s] ... 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-7507c6d4-848a-4647-87ad-d6a55ef68aa6 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_url [0.131073s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia/cdrom GOT Response: 204 No Content Openstack-Request-Id: req-0e364c29-d825-4b63-8205-26a8413bef06 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_volume_target.TestPatch.test_remove_mandatory_field [0.124507s] ... 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-c4dafd80-46ef-40a1-826a-0f7e7e79cf9d X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_provision_with_deploy [0.136409s] ... 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-2a94f2d1-1007-4396-a72a-5a77e535b01a 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_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.216644s] ... 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-40dab529-7144-462b-934e-93a74c115055 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-22T18:21:15.939208+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_device_types [0.081618s] ... 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-18e4361a-319d-49c7-8741-45d110f5d9f3 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_version [0.066553s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup [0.092636s] ... 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-bf5722e8-36b0-4c80-b217-c3bb66f54e75 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-22T18:21:16.035388+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get [0.050828s] ... 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-8d9945e6-19f3-421c-96de-d48ce90749e6 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": ""}] {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.164217s] ... 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-bea4d806-a192-482f-a76b-9b4180e6b0b9 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_volume_target.TestPatch.test_remove_multi [0.173810s] ... 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-7bfd9ca5-7c09-4bbc-a214-9499ea78b75c 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-22T18:21:16.002220+00:00", "updated_at": "2025-05-22T18:21:16.006475+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-c79d7a51-b797-464d-a899-6381ebc540ed 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-22T18:21:16.002220+00:00", "updated_at": "2025-05-22T18:21:16.006475+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_port.TestPost.test_create_port_portgroup_different_nodes [0.076046s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': 'c12d79a4-e969-4378-8de0-803e6d43df89', '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-a930af36-66ad-446f-a240-750ba20add43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node c12d79a4-e969-4378-8de0-803e6d43df89 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get_wrong_version [0.045550s] ... 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-c435df06-83ed-41e8-8820-f69105307200 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.92 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.088639s] ... 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-acc80fa4-2fa0-4132-9e23-10518df60c4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.101227s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.163811s] ... 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-05ae5916-afc2-42e4-b93c-f8ec4f2aa8e5 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_volume_target.TestPatch.test_remove_node_id [0.169430s] ... 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-74da0fa0-3e20-42ca-9a05-326d0a159a66 X-Openstack-Ironic-Api-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_portgroup_uuid_not_found [0.093407s] ... 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-07f2370e-e87a-4393-9af6-1f3abc9c5789 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.071150s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.094098s] ... 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-dbdb8d79-76ac-4059-b7bb-3ec17413b638 X-Openstack-Ironic-Api-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_add_chassis_id [0.092564s] ... 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-54b52328-652a-442e-bac0-47485e638043 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.176770s] ... 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-084fb0e7-c50b-423d-a430-2a6fde48c93a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.179670s] ... 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-b4ce49e2-7fa7-4633-9dea-8cd0afc51652 X-Openstack-Ironic-Api-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 non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.090317s] ... 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-460ef61e-e765-4c9c-8711-880c730eae61 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid [0.166677s] ... 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-a478918a-c427-4259-b234-91102f05aa9b 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-22T18:21:16.497234+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_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.161380s] ... 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-954b0334-086b-4651-af97-bbd0c5d1a977 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.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.133779s] ... 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-52e13bf6-738b-4028-b7c3-7e2aa7f21634 X-Openstack-Ironic-Api-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_port.TestPost.test_create_port_valid_extra [0.139233s] ... 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-7b753edc-67cf-4fe3-8448-7c6a89a862bb 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-22T18:21:16.601007+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-6b30ef56-d907-499e-a479-cfc618ff4eda 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-22T18:21:16.601007+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.078625s] ... 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-497c53b5-2b1b-4e03-8c2c-bcffd1ae0312 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-22T18:21:16.704725+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.113216s] ... 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-16d40c12-3f00-463b-aaf5-165ea05c75dc X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type [0.129351s] ... 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-57b808f9-97d6-4c20-a2a4-c25a42289616 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types , , for configdrive: ['aabb']\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.203069s] ... 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-0942f891-e968-4f9b-8027-c0802a5d70e8 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-22T18:21:16.648791+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_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.106553s] ... 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-16098739-5916-462d-93d1-a38e76bb95a0 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-22T18:21:16.801186+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.136730s] ... 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-0790784e-22cd-4bca-99b4-e1f6764e6767 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 [0.152048s] ... 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-1c38a2f4-f987-4c51-b84d-c5bcc6586559 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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.084680s] ... 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-4e89e547-ad75-4473-8f29-d3c9f4d7c3e3 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-22T18:21:16.887558+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root [0.199711s] ... 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-22840c73-9b38-4c8c-8e3b-1a00d6001d1d 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-22T18:21:16.845943+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_target.TestPatch.test_replace_multi [0.157115s] ... 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-631de8b5-322e-4fcc-aa40-4d0ee82076ec 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-22T18:21:16.968314+00:00", "updated_at": "2025-05-22T18:21:16.971040+00:00", "boot_index": 0, "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.182023s] ... 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-521427e5-8087-49ff-b724-a03a050cbbcb X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url [0.194927s] ... 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-2ea48cdd-054c-4bb8-bbdd-7e06b151a33b 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.TestPatch.test_add_root_non_existent [0.152246s] ... 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-59a84755-7a59-4aa7-9608-eca18d3c0df5 X-Openstack-Ironic-Api-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_volume_target.TestPatch.test_replace_node_id [0.113828s] ... 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-814e41fc-66c6-49d6-bb08-c6478e05bdc9 X-Openstack-Ironic-Api-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_vif_pxe_portgroup_standalone_ports [0.097840s] ... 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-afa43b66-03c6-4345-b918-330e0d41a992 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-22T18:21:17.175699+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_both_node_ident_and_node_uuid [0.061662s] ... 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-3c5cba96-b3ab-4e24-8dc8-9630e6f0f23e X-Openstack-Ironic-Api-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_node.TestPatch.test_add_state_in_cleaning [0.114836s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f8e1a578-e83b-4c9f-8df1-0ab84e83dc32 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-29c81fc0-e3c1-4645-a567-53b1f686f509 X-Openstack-Ironic-Api-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 f8e1a578-e83b-4c9f-8df1-0ab84e83dc32 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps [0.213973s] ... 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-6b9b7baf-3396-4b13-baf3-fbf40bad99df 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.9/site-packages/jsonschema/validators.py:1104: 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_port.TestPost.test_create_port_with_hyphens_delimiter [0.060869s] ... 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-1b81fb27-4b78-4c14-aa48-faeb09bfc351 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.154028s] ... 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-48cf53a1-5390-4839-b8a4-09170c084a67 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-22T18:21:17.246253+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_port.TestPost.test_create_port_with_internal_field [0.061480s] ... 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-ea326c0d-dd66-4ef4-a24c-a591ccac373b X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.179836s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/25a1f952-51f3-41b0-b921-3608842fa7ed WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e50ac93-1c21-4346-a4d7-091b9bc879bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "25a1f952-51f3-41b0-b921-3608842fa7ed", "created_at": "2025-05-22T18:21:17.410805+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/25a1f952-51f3-41b0-b921-3608842fa7ed", "rel": "self"}, {"href": "http://localhost/nodes/25a1f952-51f3-41b0-b921-3608842fa7ed", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/25a1f952-51f3-41b0-b921-3608842fa7ed/ports", "rel": "self"}, {"href": "http://localhost/nodes/25a1f952-51f3-41b0-b921-3608842fa7ed/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail [0.169133s] ... 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-a0308e1a-3a1a-4535-9dde-4959e9dfd406 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.69\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.172974s] ... 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-e11311ac-9524-423a-97a5-b79f193dc628 X-Openstack-Ironic-Api-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_port.TestPost.test_create_port_with_is_smartnic [0.175490s] ... 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-20a40b3c-e51c-4c41-b552-19a861a5f4b5 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-22T18:21:17.520852+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": true, "local_link_connection": {"hostname": "host1", "port_id": "rep0-0"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.082719s] ... 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-21054f6f-471a-4487-aaf9-46e93e989698 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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.061245s] ... 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-29d6e66e-1f58-4391-b279-6da0a856891f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.156852s] ... 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-1216deb6-bfcd-4b7a-b732-e7a4a7ba5203 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_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.170789s] ... 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-332ee291-a126-4497-8722-d658a6cb362e X-Openstack-Ironic-Api-Maximum-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_node.TestPut.test_provision_with_rebuild_configdrive [0.061523s] ... 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-c00d650a-4788-4cf7-a1e6-b5b6bf246f65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.074446s] ... 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-fda1f6b2-05b0-4470-98e1-c8de8c176dad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.238385s] ... 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-aeae5c80-1ab5-4f71-a438-6b729c467a4e 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-22T18:21:17.729338+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps [0.091904s] ... 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-cfbfc0f7-c672-4cbf-91da-939b5e5dd45f 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.9/site-packages/jsonschema/validators.py:1104: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.134085s] ... 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-b2c1d567-4b6d-48cb-8d50-d076c673668e 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-22T18:21:17.750389+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_volume_target.TestPatch.test_replace_singular [0.200924s] ... 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-8ddb61f6-7678-4113-834f-6859db647f0f 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-22T18:21:17.766925+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.086642s] ... 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-fd399514-5b0b-4256-af3c-aab0734c465c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.059401s] ... 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-e972026d-c38f-4afa-a772-164e6ee82378 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.TestPatch.test_patch_add_name_reserved [0.137805s] ... 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-b9d6ced3-6755-457c-910c-c24e8444754f 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-9c5d31dd-42c0-4e16-a41e-b27aa58ca8b3 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-ed3d94e5-f1ce-4a51-ab4a-0b6f5b3a5a0e 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-655b2bf2-4201-4ef0-92fc-b5d0124d507e 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-400dcb51-a90f-43ea-a422-9c7d982099a0 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-0d417665-b968-4a81-a124-d31ebcee2e1b 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.084657s] ... 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-6bb248b2-b6b5-41f5-be36-02627e82e6d8 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_volume_target.TestPatch.test_update_byid [0.169923s] ... 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-599846a8-753a-44fe-877d-35884432c79c 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-22T18:21:17.974119+00:00", "updated_at": null, "boot_index": 0, "extra": {"foo": "bar"}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.271900s] ... 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-880bc477-c0ae-4405-a2f3-b97550154e23 X-Openstack-Ironic-Api-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_node.TestPatch.test_patch_add_replace_invalid [0.083105s] ... 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-bdca9f13-258e-4b9a-b4e7-233a0d2e81a8 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_target.TestPatch.test_update_byid_invalid_api_version [0.038246s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.049705s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/afb3726f-8053-4922-a7d5-30f99695771c WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f3586dbd-52b8-454f-8fd2-a29e44e782be X-Openstack-Ironic-Api-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 afb3726f-8053-4922-a7d5-30f99695771c could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.037722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c6c115a0-43d5-409b-9533-4bd2e338a173 X-Openstack-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.TestPatch.test_patch_allocation_forbidden [0.101571s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fdee64fc-0f35-4385-a547-6c467d33b638 WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '2597ae80-bf40-4184-a255-43418620c163'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-619b03f9-cb59-404f-91b2-9afa0a3ccec7 X-Openstack-Ironic-Api-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.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.026676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-41c6b018-0a3f-4766-be3e-d94619eab86b X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.051739s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/64fb531f-6c12-49a9-aa1c-e8fb0e16accc WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'a53a37ed-aec4-49b2-8caa-2b85fcfc0f41'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ac3f1083-728f-48d0-9c8b-d276bbac8c4b 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.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.035044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-118ff16a-7207-44ce-bf39-3b81d7cddf82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy [0.204326s] ... 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-6fbe8a77-dcbd-450e-a3a7-9871da81d166 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_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.205943s] ... 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-ffdb39f1-2bb3-4c0e-9e91-f9b676e32120 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.050929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-af9af918-704c-498e-954b-ad9082988125 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.104962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1c54619d-5f5e-4993-8c11-a95b92eac9d5 WITH [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-56e53b15-ffc8-449a-ba3d-5c32529c249f 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_unprovision_after_service_failed [0.096740s] ... 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-0836241b-c944-44e2-a4f7-572eacfa9b25 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_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.084116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4f90c919-64be-4bc0-a5a9-0a2b280f48ab X-Openstack-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.TestPatch.test_patch_deploy_step_forbidden [0.055983s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/14c6c509-9461-434d-a27b-7c32ad9ab846 WITH [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4d466d1c-7f40-4647-bd96-fe30c01aa63c 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_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.131542s] ... 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-c5faddce-ec17-4987-b305-c0130e602213 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}"} {2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.086728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f38a342f-243d-4853-b718-c58f5ef71275 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid [0.146048s] ... 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-3658c2ec-56bb-4335-a3b4-fffc7149378b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.082184s] ... 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-a9c726de-831e-4716-a9c6-6df550ddf6d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.100316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8d667a80-325c-4c81-a6d0-166d4b0b8692 X-Openstack-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.dev120/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n\\n File \\\"/builddir/build/BUILD/ironic-29.1.0.dev120/ironic/api/controllers/root.py\\\", line 44, in index\\n return root()\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1092, in __call__\\n return self._mock_call(*args, **kwargs)\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1096, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1151, in _execute_mock_call\\n raise effect\\n\\nException: Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\\n\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.227750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ff7e6324-60bf-426b-a691-66c18bee6ae9 WITH [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-7b7724a6-e806-4c5b-a77b-c451ae6e5588 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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.171303s] ... 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-1711427a-c8f8-4de7-969b-57ec7ff81edc 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_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.104357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3996e279-7b56-4e43-ad71-a365ca436920 X-Openstack-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc [0.181801s] ... 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-0d2df6d3-a858-4510-84b5-5dbea6b868b8 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-22T18:21:18.602999+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"} {2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.057136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2a681272-4df1-46f8-af49-db08a0edf267 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.111208s] ... 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-ad0ddf62-4ddf-43af-88c7-f13f5a2d18f5 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_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.102494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-cd12ab5c-30b3-4956-9093-404f2051c1c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.117844s] ... 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-25ae9699-4e34-494f-95d5-09bb78804502 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_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.070718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0bb6cb8c-6786-4c9b-b560-6e51fe9b3e7f X-Openstack-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.dev120/ironic/api/method.py\\\", line 42, in callfunction\\n result = f(self, *args, **kwargs)\\n\\n File \\\"/builddir/build/BUILD/ironic-29.1.0.dev120/ironic/api/controllers/root.py\\\", line 44, in index\\n return root()\\n\\n File \\\"\\\", line 3, in root\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1092, in __call__\\n return self._mock_call(*args, **kwargs)\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1096, in _mock_call\\n return self._execute_mock_call(*args, **kwargs)\\n\\n File \\\"/usr/lib64/python3.9/unittest/mock.py\\\", line 1151, in _execute_mock_call\\n raise effect\\n\\nException: Error message without traceback \\n but \\n multiline\\n\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.279949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/86804c7c-a0c5-4993-97ff-d9a0a107bcb2 WITH [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2626a6d4-503a-47ec-af67-fa5aa8e79f07 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}"} {2} ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.039900s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.087180s] ... 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-b545ea1a-402f-429a-af4b-9f5fcea3d636 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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version [0.297309s] ... 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-45a77401-7baa-40ac-ae33-60f983400f51 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}"} {2} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated [0.066430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c53c8245-50b2-49d9-8812-658a32b9a02d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": []} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None [0.105553s] ... 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-e5ba87ea-2747-479d-8e16-f9e55d8347b2 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_middleware.TestBasicAuthMiddleware.test_not_authenticated [0.085584s] ... 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}} {2} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated [0.058829s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d4331dd-79d1-4c67-be30-1fea7a0e045a 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.TestPut.test_secure_boot_invalid_request_boo [0.083752s] ... 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-94e04545-fed8-4312-8073-35287306a57e 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_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.067696s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.308379s] ... 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-6d7b98b8-f660-4971-9ddb-e1ed6416c30c 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-22T18:21:19.027041+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr [0.091296s] ... 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-9601bd93-6f23-418a-b878-3d57f6c61fa0 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}"} {2} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.055836s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident [0.296225s] ... 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-ceb30f3d-cdd3-4c07-a441-7c00979abf16 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-22T18:21:19.216884+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-37dd31b1-2031-43f1-b803-4310697431c6 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-22T18:21:19.216884+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver [0.114795s] ... 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-e67b5a24-5f49-4434-8596-33c6e187fd7c 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_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.104652s] ... ok {2} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.059759s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident_unsupported_api_version [0.184597s] ... 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-53b3a236-31ff-491b-b34f-4aa174e92ed0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver [0.107013s] ... 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-dbb60bfc-1901-4e95-8875-6bb785eaa06d 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.TestPatch.test_patch_name_replace_ok [0.277079s] ... 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-c550d347-f143-4473-b437-f02deb21dedb 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-22T18:21:19.312530+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.test_root.TestRoot.test_get_root [0.096099s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bb5457b-719f-46cd-af74-9bdc877bac1e 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.074894s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/foo WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.072160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-0e8b244f-3de5-44b3-afd9-a0b4052810d9 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_uuid [0.223753s] ... 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-272e4f42-3544-462a-a5b8-de0f4b41a8da 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-22T18:21:19.670938+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-6bd2c71e-76e5-4713-9f0f-791f1ab3979d 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-22T18:21:19.670938+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update [0.239703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5 WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-67844b02-dabe-4fd0-a989-831c56529a7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "f6cd18eb-55b0-4087-ac5f-697415007fd5", "created_at": "2025-05-22T18:21:19.645705+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/f6cd18eb-55b0-4087-ac5f-697415007fd5", "rel": "self"}, {"href": "http://localhost/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5/ports", "rel": "self"}, {"href": "http://localhost/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5/states", "rel": "self"}, {"href": "http://localhost/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5/volume", "rel": "self"}, {"href": "http://localhost/nodes/f6cd18eb-55b0-4087-ac5f-697415007fd5/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.114784s] ... ok {2} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.094178s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.258774s] ... 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-0fc75bef-68a1-4a6a-a08b-3bebdbe60cae 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-22T18:21:19.909745+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"} {2} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.108858s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra [0.339294s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62f32864-c844-45db-aabf-43b848080e0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "0138a97e-d332-4ef4-acb8-550295cc6a5e", "created_at": "2025-05-22T18:21:19.902183+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/0138a97e-d332-4ef4-acb8-550295cc6a5e", "rel": "self"}, {"href": "http://localhost/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e/ports", "rel": "self"}, {"href": "http://localhost/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e/states", "rel": "self"}, {"href": "http://localhost/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e/volume", "rel": "self"}, {"href": "http://localhost/nodes/0138a97e-d332-4ef4-acb8-550295cc6a5e/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.122783s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero [0.678614s] ... 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-30bd37bc-39aa-4782-8fd9-c1a1c99b6d4c 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.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.099387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ foo() migrated 15 of 15 objects. {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version [0.257412s] ... 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-9b56a156-8107-451f-808f-14f137eab192 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.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two [0.133332s] ... 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-f9f2b6e5-52d4-44cc-9daa-0d3ce83e561a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '2', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.087148s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.071298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver [0.123545s] ... 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-f1e4c32f-0ff9-487e-9cc5-2d0cbb447c34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info [0.329775s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783 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-8dfcab12-291d-4e66-a6ee-e867c23a2450 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "017e1927-3cd1-402d-b3e5-4a22f965b783", "created_at": "2025-05-22T18:21:20.288554+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/017e1927-3cd1-402d-b3e5-4a22f965b783", "rel": "self"}, {"href": "http://localhost/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783/ports", "rel": "self"}, {"href": "http://localhost/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783/states", "rel": "self"}, {"href": "http://localhost/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783/volume", "rel": "self"}, {"href": "http://localhost/nodes/017e1927-3cd1-402d-b3e5-4a22f965b783/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade [0.210568s] ... 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-85323071-6e03-4295-9bcc-fc5be172af4c X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.097014s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 15 objects. {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver [0.135958s] ... 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-1b69c3fa-f01e-4f4d-b0a7-c9a9bf4f1754 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.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.082477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.125337s] ... 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-964965e9-4b54-4b63-9ff1-3c89f1e8c57a 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_patch_policy_update_generic_and_extra [0.194771s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5 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-91f0551c-3e81-4c8b-8da6-7d9e54d5a890 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "01c93e3a-d7db-4ab6-8411-497a1ffb11c5", "created_at": "2025-05-22T18:21:20.561112+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/01c93e3a-d7db-4ab6-8411-497a1ffb11c5", "rel": "self"}, {"href": "http://localhost/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5/ports", "rel": "self"}, {"href": "http://localhost/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5/states", "rel": "self"}, {"href": "http://localhost/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5/volume", "rel": "self"}, {"href": "http://localhost/nodes/01c93e3a-d7db-4ab6-8411-497a1ffb11c5/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_without_node_or_node_uuid [0.050534s] ... 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-9822b244-f643-425b-b2d9-7722517f141d X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.075070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ Error while running foo: bar. {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one [0.119379s] ... 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-eff9439d-76ad-45c8-9fab-608b36d57b2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.104529s] ... 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-1b4cb8c8-72dd-449e-96ac-5bc44490e5ea 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-22T18:21:20.733902+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.084375s] ... 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-7bd43dea-a7be-4387-bc2a-2e5f04e528e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service [0.155858s] ... 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-a6426793-5e8a-41b9-b792-52f8f4cc79e9 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.9/site-packages/jsonschema/validators.py:1104: 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_portgroup.TestPost.test_create_portgroup [0.085128s] ... 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-b836ba0b-0a37-480e-b1ec-0e6adf0e60a8 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-e196e40f-2cb6-4518-a5a4-08d9c1e11864 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info [0.340038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d 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-25b4fed0-94b5-44e1-9e12-976182c562fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "cd3f976a-c91b-437a-b7ea-e1ddad783b6d", "created_at": "2025-05-22T18:21:20.712151+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/cd3f976a-c91b-437a-b7ea-e1ddad783b6d", "rel": "self"}, {"href": "http://localhost/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d/ports", "rel": "self"}, {"href": "http://localhost/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d/states", "rel": "self"}, {"href": "http://localhost/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d/volume", "rel": "self"}, {"href": "http://localhost/nodes/cd3f976a-c91b-437a-b7ea-e1ddad783b6d/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_args_required [0.160125s] ... 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-ac3e4273-7188-4c0c-bd2f-a74f45822664 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.87 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"service_steps\\\" is required when setting target provision state to service\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.075144s] ... 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-a883cd52-6758-4a14-9e17-0b2b7a5a16af 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-22T18:21:20.974874+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': '991175fd-3a8a-4d9a-9a40-ecda51edb3e2', 'name': '512f2f63-4a85-4847-8d47-af2830329df0', '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-1dba08e3-ec39-44a4-9ccb-8e5c0aed6644 X-Openstack-Ironic-Api-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_portgroup.TestPost.test_create_portgroup_address_normalized [0.075305s] ... 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-fd5d731e-9168-476f-ab26-139f860714a5 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-22T18:21:21.063667+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-cc7d9507-6eda-45aa-b972-f7a0bb1f192a 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-22T18:21:21.063667+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info [0.145971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/41f45146-2826-4517-acb1-eca873b1f6eb 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-0393e020-3221-465d-bc8c-4545e7bd7810 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "41f45146-2826-4517-acb1-eca873b1f6eb", "created_at": "2025-05-22T18:21:21.065446+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/41f45146-2826-4517-acb1-eca873b1f6eb", "rel": "self"}, {"href": "http://localhost/nodes/41f45146-2826-4517-acb1-eca873b1f6eb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/41f45146-2826-4517-acb1-eca873b1f6eb/ports", "rel": "self"}, {"href": "http://localhost/nodes/41f45146-2826-4517-acb1-eca873b1f6eb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/41f45146-2826-4517-acb1-eca873b1f6eb/states", "rel": "self"}, {"href": "http://localhost/nodes/41f45146-2826-4517-acb1-eca873b1f6eb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/41f45146-2826-4517-acb1-eca873b1f6eb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/41f45146-2826-4517-acb1-eca873b1f6eb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/41f45146-2826-4517-acb1-eca873b1f6eb/volume", "rel": "self"}, {"href": "http://localhost/nodes/41f45146-2826-4517-acb1-eca873b1f6eb/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks [0.134080s] ... 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-f9e7b23f-9da1-4d73-aeb7-59717ed1afcf 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.9/site-packages/jsonschema/validators.py:1104: 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.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.508548s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.105768s] ... 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-243a84a7-7945-429c-946f-4fcdd31a34a3 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-22T18:21:21.172561+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.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.074726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func1() migrated 0 of 0 objects. func2() migrated 0 of 0 objects. {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.067855s] ... 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-a7fdc095-e28e-4db7-9c16-2cd1167ce9c4 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-22T18:21:21.236988+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-7ce6e9ac-de34-4e73-96e5-592357c6afe4 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-22T18:21:21.236988+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info [0.154229s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d79dcd78-3226-4eed-9483-116103b89e0a WITH [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c0fced5-2119-41a0-a9c8-737346e3cae8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "d79dcd78-3226-4eed-9483-116103b89e0a", "created_at": "2025-05-22T18:21:21.213252+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/d79dcd78-3226-4eed-9483-116103b89e0a", "rel": "self"}, {"href": "http://localhost/nodes/d79dcd78-3226-4eed-9483-116103b89e0a", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d79dcd78-3226-4eed-9483-116103b89e0a/ports", "rel": "self"}, {"href": "http://localhost/nodes/d79dcd78-3226-4eed-9483-116103b89e0a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d79dcd78-3226-4eed-9483-116103b89e0a/states", "rel": "self"}, {"href": "http://localhost/nodes/d79dcd78-3226-4eed-9483-116103b89e0a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d79dcd78-3226-4eed-9483-116103b89e0a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d79dcd78-3226-4eed-9483-116103b89e0a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d79dcd78-3226-4eed-9483-116103b89e0a/volume", "rel": "self"}, {"href": "http://localhost/nodes/d79dcd78-3226-4eed-9483-116103b89e0a/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks_unapproved [0.170736s] ... 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-b7e07db0-4dc6-4974-8e7d-68c57bf4806c X-Openstack-Ironic-Api-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.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.097042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.052275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.096602s] ... 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-9c88beb0-fdd3-4fb2-9baa-db98cb7411ac 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.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.071595s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. {2} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.053783s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1key1=value1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none [0.216946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8 WITH [] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-05bab055-aba9-4080-b326-9f965ea75197 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5b46510b-4f7b-4eff-99fe-3d823fefcad8", "created_at": "2025-05-22T18:21:21.372569+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/5b46510b-4f7b-4eff-99fe-3d823fefcad8", "rel": "self"}, {"href": "http://localhost/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8/ports", "rel": "self"}, {"href": "http://localhost/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8/states", "rel": "self"}, {"href": "http://localhost/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8/volume", "rel": "self"}, {"href": "http://localhost/nodes/5b46510b-4f7b-4eff-99fe-3d823fefcad8/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.109500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 204 No Content Openstack-Request-Id: req-e404e37d-13ea-4de5-8419-c3c4d30da643 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.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.053460s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1.key1value1 {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.314058s] ... 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-3e4da130-4eca-4b6f-b0b7-76db5ce183a7 X-Openstack-Ironic-Api-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.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.054623s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ "max-count" must be a positive value. {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.100852s] ... 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-53f44b57-c785-4f2e-9d5a-f6ac4eafc906 X-Openstack-Ironic-Api-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_node.TestPatch.test_patch_portgroups_subresource [0.141638s] ... 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-2329477d-567a-4928-a225-2039af30e6fe 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.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.075189s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Data migrations have not completed. Please re-run. {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid [0.133676s] ... 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/015b5323-2abb-4d26-a84c-c4bfc9f0956d Openstack-Request-Id: req-573e0b18-4770-4b37-a4fc-22937baa07c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "015b5323-2abb-4d26-a84c-c4bfc9f0956d", "created_at": "2025-05-22T18:21:21.676218+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/015b5323-2abb-4d26-a84c-c4bfc9f0956d", "rel": "self"}, {"href": "http://localhost/portgroups/015b5323-2abb-4d26-a84c-c4bfc9f0956d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/015b5323-2abb-4d26-a84c-c4bfc9f0956d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/015b5323-2abb-4d26-a84c-c4bfc9f0956d/ports", "rel": "bookmark"}]} GET /v1/portgroups/015b5323-2abb-4d26-a84c-c4bfc9f0956d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-770b9a83-d904-4518-82d5-64c6434c04bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "015b5323-2abb-4d26-a84c-c4bfc9f0956d", "created_at": "2025-05-22T18:21:21.676218+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/015b5323-2abb-4d26-a84c-c4bfc9f0956d", "rel": "self"}, {"href": "http://localhost/portgroups/015b5323-2abb-4d26-a84c-c4bfc9f0956d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/015b5323-2abb-4d26-a84c-c4bfc9f0956d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/015b5323-2abb-4d26-a84c-c4bfc9f0956d/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.070890s] ... 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-9a5e598f-7a7e-496e-8c82-8a76b3fb968b X-Openstack-Ironic-Api-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.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.083627s] ... 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.TestPatch.test_patch_ports_subresource_no_port_id [0.058257s] ... 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-1bc76ee2-b2e4-4c06-b040-20bc5f6e350c X-Openstack-Ironic-Api-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_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.077154s] ... 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-5dcc8240-1f29-414d-ab29-d0958fe31c45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.170537s] ... 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-9832fa95-ac9a-4619-8bc3-a5e05ab44008 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_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.054370s] ... 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-5d3b6ea6-e0f8-4705-af2c-84071937f750 X-Openstack-Ironic-Api-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_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.043500s] ... 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-fee7c894-82ec-4e45-ad64-a3900f911af5 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.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.121234s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.122339s] ... 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-d4cd09bf-33a2-49ee-a7bd-9c50676017d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.050229s] ... 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-e0eeed1a-e374-4646-b745-7dbee2397ff3 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.131589s] ... 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-0ada9d64-cb0a-4796-8563-36e0570847bc X-Openstack-Ironic-Api-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.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.068599s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.063961s] ... 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-eb2bcc23-cf51-43fe-b2fb-a0e5e94b002f 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_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.079922s] ... 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-6f74c876-8cc7-4f10-bdc1-dad10ebfd7ed 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-16b6f051-e54c-4c99-942c-a149d50748c8 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.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.057088s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.108439s] ... 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-ab94b1b0-9c5a-4f1a-a4d4-036556a22293 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.command.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.043390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ This is bad {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.125778s] ... 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-f73c47e5-8271-4eab-9fd4-3c29d2678ad9 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.command.test_status.TestUpgradeChecks.test__check_allocations_table_latin1 [0.042856s] ... ok {2} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm [0.037420s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.070252s] ... 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-1f2c31ef-57a3-4479-9a35-16711c3e45f7 X-Openstack-Ironic-Api-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_portgroup.TestPost.test_create_portgroup_mode_properties [0.159325s] ... 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-0e5b78b0-5da8-4810-a501-908bbd90523a 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-22T18:21:22.130537+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.134411s] ... 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-ce4776a3-0f56-4e80-9eb1-03f650c36e00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm_both [0.064461s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.067743s] ... 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-144ca148-cc8e-4e4b-ac83-69dedd6d58f8 X-Openstack-Ironic-Api-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.command.test_status.TestUpgradeChecks.test__check_allocations_table_ok [0.050597s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid [0.133026s] ... 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-740182a5-a90f-41e6-996a-8883f00ac691 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request [0.131872s] ... 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-351cb50d-5aef-4a19-b91c-5ebf854cbdab X-Openstack-Ironic-Api-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.TestPatch.test_patch_volume_targets_subresource [0.095555s] ... 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-89c3559b-ea30-4700-9b59-c1b3a2514638 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.114150s] ... 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-4f4acf16-a35e-4099-a3cd-0d5294f9642f X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.154284s] ... 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-207eb8c6-95f7-452c-bee5-bc8a8a954757 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-22T18:21:22.425725+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-644b2491-7e8d-4b1e-9de0-b036fbb6bb56 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-22T18:21:22.425725+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_node.TestPatch.test_remove_chassis_id [0.146125s] ... 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-339c5aaf-3d68-435a-8aaf-fae2be688cb6 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.108344s] ... 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-925e9855-ecaa-42e5-9228-6d96f62ec9ea X-Openstack-Ironic-Api-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.command.test_status.TestUpgradeChecks.test__check_obj_versions [0.372074s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.202528s] ... 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-acb4a19c-0862-46f2-b8b5-032e9c07aabe 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-22T18:21:22.593247+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-36b631ac-0a0f-4cc6-a8f3-838a0aea9114 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-22T18:21:22.593247+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.command.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.042344s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum [0.025857s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.162051s] ... 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-400bd324-c3ad-4ccc-988b-3cc379ae79f6 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.TestPatch.test_remove_chassis_uuid [0.222227s] ... 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-f5c9ec96-81d9-4926-b580-82aaa9951112 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-22T18:21:22.574565+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"}]} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_glance [0.023190s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_http_url [0.023271s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_https_url [0.023744s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.121906s] ... 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-884cff96-67b7-44b8-87b8-d92cbd42d942 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_not_allowed [0.036303s] ... ok {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha256 [0.033740s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled [0.154023s] ... 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-768650e5-69b0-44d3-86d2-1d1c38a5e973 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.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.161135s] ... 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-bdb68428-768b-4e10-af8f-d4536e64cca7 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}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.120407s] ... 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-6584ff3d-a84c-44a6-9904-6c70418346e2 X-Openstack-Ironic-Api-Maximum-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field [0.054783s] ... 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-1f4aee53-010c-4152-8352-8bc21b1af0e3 X-Openstack-Ironic-Api-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.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha512 [0.100306s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state [0.105560s] ... 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-2ef7455e-dbd4-4671-9145-a61bcf6319c4 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.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_no_checksum_file_url [0.077777s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.147973s] ... 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-5168cd0e-0834-4f44-b9a8-29fb6b844094 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-92eeadfb-cc20-40d5-9ed8-6c6bdc90e5d0 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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value [0.112341s] ... 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-83141707-5da6-4540-a44b-fd7b8f134273 X-Openstack-Ironic-Api-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.TestPatch.test_remove_mandatory_field [0.151773s] ... 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-cd55c7e3-d080-4daf-b86c-4b64af23b99c X-Openstack-Ironic-Api-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.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url [0.087315s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported [0.098138s] ... 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-aac327a7-a12a-445f-a0d8-cfc4eacdb716 X-Openstack-Ironic-Api-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.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_file [0.068576s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail [0.093544s] ... 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-5d7e02a1-7791-4206-bb88-08e4d8a28f06 X-Openstack-Ironic-Api-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 non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.132827s] ... 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-f86846f7-6546-474e-a408-0612963fc199 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-22T18:21:23.150470+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-3b4f8094-911e-4ded-9569-61b59faaff08 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-22T18:21:23.150470+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_string [0.064058s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.094634s] ... 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-f92f4061-b6b4-4915-b5df-1d94f39eb94a X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum [0.052839s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.169886s] ... 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-6ca44028-67d7-4e94-83bb-d0c98bccb772 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-22T18:21:23.228165+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.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum_invalid [0.073276s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.056127s] ... 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-6dc7089a-dbf3-45aa-8930-20e0f908700d X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.138696s] ... 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-477891d1-3ca5-4b93-b800-c259cae452ff 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-22T18:21:23.407084+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.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback [0.096632s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id [0.096599s] ... 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-fd1c7d38-efcd-4806-b4a9-4de8e3fd66d4 X-Openstack-Ironic-Api-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.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.062262s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_enroll [0.149041s] ... 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-3a2aadda-14df-49c8-b8bf-fe9c581b58bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "56b0f21b-1dc5-4dea-94ef-2f2fdfa364b7"} {2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.057222s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.073804s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_override_defaults [0.108238s] ... 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-fc1244df-d1bf-44af-857a-0a9894e263fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "20bc848c-d30b-407e-b8e1-6e54f582788a"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.199632s] ... 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-42bb610c-44e6-45af-9ae7-52f997162c37 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-22T18:21:23.590043+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.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.062246s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs [0.610574s] ... 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-da6a63e2-7510-4106-a32d-aca2c68d5c7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_wrong_driver [0.093599s] ... 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-772d78fc-a5ff-4f28-9fd4-b1fbff673c57 X-Openstack-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}"} {2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.073706s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled [0.101384s] ... 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-5156fd00-5eb7-424c-91ec-abbfe5d7cc66 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface [0.051599s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status [0.087014s] ... 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-1f423f0c-2591-4d48-a380-bf2115b0c602 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning [0.108214s] ... 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-f285dc71-1c44-4df3-ab5c-08d060a7e8c1 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.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.080949s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.127216s] ... 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-5585ab0c-712e-44c7-b4ab-183f5b1f1572 X-Openstack-Ironic-Api-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_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url [0.092431s] ... 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-e07b95fd-abb8-4170-8ebf-4174beffbe84 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.098129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-be93f129-5970-4db9-922b-0495b71d7613 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.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.063543s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_file_url [0.074636s] ... 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-d831e5b2-ccf4-4822-949e-a154b0ebd30d X-Openstack-Ironic-Api-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.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.066094s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name [0.096160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-c06b8bf4-9ac6-45a1-97e7-b8fd2e95b7eb 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_ramdisk.TestHeartbeat.test_node_not_found [0.074917s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/d0d1ca5f-0e21-4f65-a2f7-de87517473e7 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8462c99e-39eb-4b97-9d9d-4987d6cec3c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d0d1ca5f-0e21-4f65-a2f7-de87517473e7 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.178775s] ... 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-f3a12902-a343-4d1f-b5d0-ad30a6e75e4f 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-22T18:21:24.018751+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.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.076283s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.114893s] ... 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-370a0c5f-44c4-4856-8c30-6d5eba3e1642 X-Openstack-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_ramdisk.TestHeartbeat.test_ok [0.106611s] ... 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-78666c18-345f-4e70-a4cf-73c1bab815de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.082295s] ... ok {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.065249s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.111181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-40b954ad-282b-4721-b83a-684102ee9e20 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status [0.094181s] ... 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-2104e1b5-50f8-4776-9678-6036dc6d2168 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.072962s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.259951s] ... 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-0776f369-c4aa-45aa-95f9-aef698d38a1f 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-22T18:21:24.246349+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token [0.122641s] ... 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-30ab1f8a-c97c-4613-8b54-e0eb6a8e954a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.135572s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-f9bf8fab-eed6-4bf1-ad9f-190a150db452 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.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.086657s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.133039s] ... 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-0702e135-fafd-4719-888c-35d3741769b9 X-Openstack-Ironic-Api-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.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.097589s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca [0.139650s] ... 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-be8deb35-7f76-4b46-aa76-f4d615411e92 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_replace_provision_updated_at [0.082055s] ... 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-a2f8fcfb-97c1-4ab9-99eb-2ff8ed4e6ac7 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold [0.224267s] ... 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-801b5476-5a3d-4dd1-a7a2-345b180f1be4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.144429s] ... 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-acf40d8d-9881-4f8c-8809-ad3b2757f18d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.173992s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold_not_allowed [0.130681s] ... 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-0917c820-773a-4931-8ec6-5388fffe1466 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}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.089938s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-2160226c-f1f2-475c-ba9d-4b63c0425e5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.147502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_for_anaconda [0.121640s] ... 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-88064788-4785-4b2a-b9b7-e487ecd9ed81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold [0.155486s] ... 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-53768fb2-1f5b-4e51-a1d3-6d384181bf80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.087833s] ... 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-5c975ca3-9a09-4253-916f-4efbdf4761cd 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.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.175264s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold_not_allowed [0.151946s] ... 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-2c195b96-450a-4b03-90f3-f836f22e7394 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}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error [0.123058s] ... 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-b45dc659-0e80-4e9d-ae74-6d5091e24adf 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}"} {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.170468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_reset_interface_fields [0.642230s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e WITH [{'path': '/boot_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87fc7e4c-c248-4f0f-a2dd-f8464df1c6e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca8f1171-143b-45bd-ae49-dbc1d07f484e", "created_at": "2025-05-22T18:21:24.683261+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/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e WITH [{'path': '/console_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-600a8cff-23bd-42df-a6ee-e95e5281e7d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca8f1171-143b-45bd-ae49-dbc1d07f484e", "created_at": "2025-05-22T18:21:24.683261+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/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e WITH [{'path': '/deploy_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ab3c8c3-6064-4f83-9928-a2222f73e29f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca8f1171-143b-45bd-ae49-dbc1d07f484e", "created_at": "2025-05-22T18:21:24.683261+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/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "self"}, {"href": "http://localhost/nodes/ca 8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e WITH [{'path': '/inspect_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-49199f93-e949-4f47-95f3-f8b0d50d920d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca8f1171-143b-45bd-ae49-dbc1d07f484e", "created_at": "2025-05-22T18:21:24.683261+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/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e WITH [{'path': '/ma nagement_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc2369b4-6dcc-48da-987f-d8f3b1cab564 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca8f1171-143b-45bd-ae49-dbc1d07f484e", "created_at": "2025-05-22T18:21:24.683261+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/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e WITH [{'path': '/power_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1598f666-1c16-4799-8ef5-9951fc721b81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca8f1171-143b-45bd-ae49-dbc1d07f484e", "created_at": "2025-05-22T18:21:24.683261+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/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e WITH [{'path': '/raid_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2ce0221-7f8e-44c7-ae86-e548373111f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca8f1171-143b-45bd-ae49-dbc1d07f484e", "created_at": "2025-05-22T18:21:24.683261+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/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e WITH [{'path': '/vendor_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16a738e3-6b17-4370-b8a4-b591c98937dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ca8f1171-143b-45bd-ae49-dbc1d07f484e", "created_at": "2025-05-22T18:21:24.683261+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/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca8f1171-143b-45bd-ae49-dbc1d07f484e/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.137891s] ... 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-b6a49c17-76d3-4a00-bbbf-6a761d99a11f 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_reset_interfaces_not_supported [0.067692s] ... 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-649ab60a-b3da-4a12-8a7d-1cbd63dcdae6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_servicehold [0.222184s] ... 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-7a0f47df-02de-4223-9f78-b1675724005e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.86 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.067478s] ... 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-c3e1f0e0-e2cf-4860-b6ac-7afb7bbdee50 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}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error [0.147621s] ... 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-d9dafa1f-b21c-4430-9b7c-525d2eb18dc8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.71 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.192691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.186390s] ... 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-b253fd2e-3554-47a8-86d2-08b6cb7f1005 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.153337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe WITH [{'path': '/network_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ca53736-45f7-4b78-b5c8-7ae6b4b0a0e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1956b3e2-5334-4f8b-acd5-11bf2e9e5abe", "created_at": "2025-05-22T18:21:25.500911+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/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe", "rel": "self"}, {"href": "http://localhost/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe/ports", "rel": "self"}, {"href": "http://localhost/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe/states", "rel": "self"}, {"href": "http://localhost/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe/volume", "rel": "self"}, {"href": "http://localhost/nodes/1956b3e2-5334-4f8b-acd5-11bf2e9e5abe/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.109793s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/482052cb-3ee0-40c4-be1e-00ae1327699f WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-37e68f60-5632-4866-8006-9a2fc0c50536 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.098940s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults [0.189336s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found [0.091763s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.145916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9 WITH [{'path': '/storage_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db9c87eb-eb5c-4b09-82e4-7abe46ad0737 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8300ca8c-acd0-478a-80f0-4ac2abba48f9", "created_at": "2025-05-22T18:21:25.634219+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/8300ca8c-acd0-478a-80f0-4ac2abba48f9", "rel": "self"}, {"href": "http://localhost/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9/ports", "rel": "self"}, {"href": "http://localhost/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9/states", "rel": "self"}, {"href": "http://localhost/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9/volume", "rel": "self"}, {"href": "http://localhost/nodes/8300ca8c-acd0-478a-80f0-4ac2abba48f9/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.082310s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation [0.091378s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type [0.102803s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.132903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/873e4ef2-ec69-4019-b608-d08e1e1351f0 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff4bc109-3224-499b-ac04-621ee014c96f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "873e4ef2-ec69-4019-b608-d08e1e1351f0", "created_at": "2025-05-22T18:21:25.772754+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/873e4ef2-ec69-4019-b608-d08e1e1351f0", "rel": "self"}, {"href": "http://localhost/nodes/873e4ef2-ec69-4019-b608-d08e1e1351f0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/873e4ef2-ec69-4019-b608-d08e1e1351f0/ports", "rel": "self"}, {"href": "http://localhost/nodes/873e4ef2-ec69-4019-b608-d08e1e1351f0/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.169887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found [0.097193s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.078119s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve [0.092780s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.086786s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override [0.155622s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.TestCheckAllowFields.test_allow_agent_token [0.072099s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.096013s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data [0.079727s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.088265s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.166742s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.TestCheckAllowFields.test_allow_deploy_steps [0.114525s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.410774s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/36645457-2903-44a7-8361-c8e535f0eced WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-329e6037-386a-4807-a046-cfd7030a387b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "36645457-2903-44a7-8361-c8e535f0eced", "created_at": "2025-05-22T18:21:25.920379+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/36645457-2903-44a7-8361-c8e535f0eced", "rel": "self"}, {"href": "http://localhost/nodes/36645457-2903-44a7-8361-c8e535f0eced", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/36645457-2903-44a7-8361-c8e535f0eced/ports", "rel": "self"}, {"href": "http://localhost/nodes/36645457-2903-44a7-8361-c8e535f0eced/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.093844s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.107756s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.083839s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.123379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15 WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-789d0d04-c88b-42a7-8162-97b0cd5b77dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "f88aad91-5696-4d68-8666-5ecc1876ee15", "created_at": "2025-05-22T18:21:26.316040+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/f88aad91-5696-4d68-8666-5ecc1876ee15", "rel": "self"}, {"href": "http://localhost/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15/ports", "rel": "self"}, {"href": "http://localhost/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15/states", "rel": "self"}, {"href": "http://localhost/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15/volume", "rel": "self"}, {"href": "http://localhost/nodes/f88aad91-5696-4d68-8666-5ecc1876ee15/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.113458s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.090332s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.127243s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.118515s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/578d97d2-2412-44b0-8303-d134bafac0ce WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3e83b36a-a015-4538-9df9-7cb38a1e8c7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.083655s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false [0.064593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/56ac338d-2d8a-4746-afc2-a9bff1263186 WITH [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-99445297-cfe3-4b3f-95c4-44d7cabe99db 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_utils.TestCheckAllowFields.test_allow_inspect_abort [0.063493s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.059553s] ... 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-0b58be47-749a-43d7-853d-5e25d2535f23 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.245216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=c48e8447-c087-41ab-aec7-853eba85824a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-987fed23-2fae-4e2f-8e59-4e8b75829249 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": "c48e8447-c087-41ab-aec7-853eba85824a", "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/c48e8447-c087-41ab-aec7-853eba85824a", "rel": "self"}, {"href": "http://localhost/nodes/c48e8447-c087-41ab-aec7-853eba85824a", "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=c48e8447-c087-41ab-aec7-853eba85824a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ccae2a5a-d335-4252-aadc-826da9fc088c 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": "c48e8447-c087-41ab-aec7-853eba85824a", "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/c48e8447-c087-41ab-aec7-853eba85824a", "rel": "self"}, {"href": "http://localhost/nodes/c48e8447-c087-41ab-aec7-853eba85824a", "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=c48e8447-c087-41ab-aec7-853eba85824a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4b73d3bb-4b1b-4836-9793-15433897a7a5 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": "c48e8447-c087-41ab-aec7-853eba85824a", "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/c48e8447-c087-41ab-aec7-853eba85824a", "rel": "self"}, {"href": "http://localhost/nodes/c48e8447-c087-41ab-aec7-853eba85824a", "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_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.098233s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.136495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e7c1a91-b14b-433d-acf2-451e12d20262 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "037ff953-b0f2-435e-b3c5-10c43d8ce116", "created_at": "2025-05-22T18:21:26.685178+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/037ff953-b0f2-435e-b3c5-10c43d8ce116", "rel": "self"}, {"href": "http://localhost/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116/ports", "rel": "self"}, {"href": "http://localhost/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116/states", "rel": "self"}, {"href": "http://localhost/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116/volume", "rel": "self"}, {"href": "http://localhost/nodes/037ff953-b0f2-435e-b3c5-10c43d8ce116/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.094508s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api [0.076410s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ec319cda-a2b5-4c59-be4f-74d6dea5f97f WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9df132e8-8853-491d-950e-9500d34e20bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.074589s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.218972s] ... 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-8b49547f-ef96-4f0c-8749-c5f56e06cc98 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": "69609c83-f682-4a91-8546-ce6779be25c9", "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/69609c83-f682-4a91-8546-ce6779be25c9", "rel": "self"}, {"href": "http://localhost/nodes/69609c83-f682-4a91-8546-ce6779be25c9", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "some-value", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.068575s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.060879s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.047534s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.162530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=bbb0123f-5515-4552-a330-11fdf39d0d5a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58a7099f-ecbb-4349-afc3-4167f5d7136a 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": "bbb0123f-5515-4552-a330-11fdf39d0d5a", "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/bbb0123f-5515-4552-a330-11fdf39d0d5a", "rel": "self"}, {"href": "http://localhost/nodes/bbb0123f-5515-4552-a330-11fdf39d0d5a", "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.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.623578s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.063308s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.059893s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.056425s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.158331s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=722e605a-1e8b-4992-983f-88d090b5ee7a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-612eca0a-1515-491c-8ab1-ade6d4eef1b9 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": "722e605a-1e8b-4992-983f-88d090b5ee7a", "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/722e605a-1e8b-4992-983f-88d090b5ee7a", "rel": "self"}, {"href": "http://localhost/nodes/722e605a-1e8b-4992-983f-88d090b5ee7a", "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"]}} {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.067978s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.057423s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description [0.359248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3553aeb9-feec-4eee-965f-56d9321333b0 WITH [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-666d4112-e601-4f48-8a97-f98093de597b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "3553aeb9-feec-4eee-965f-56d9321333b0", "created_at": "2025-05-22T18:21:26.997947+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/3553aeb9-feec-4eee-965f-56d9321333b0", "rel": "self"}, {"href": "http://localhost/nodes/3553aeb9-feec-4eee-965f-56d9321333b0", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3553aeb9-feec-4eee-965f-56d9321333b0/ports", "rel": "self"}, {"href": "http://localhost/nodes/3553aeb9-feec-4eee-965f-56d9321333b0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3553aeb9-feec-4eee-965f-56d9321333b0/states", "rel": "self"}, {"href": "http://localhost/nodes/3553aeb9-feec-4eee-965f-56d9321333b0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3553aeb9-feec-4eee-965f-56d9321333b0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3553aeb9-feec-4eee-965f-56d9321333b0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3553aeb9-feec-4eee-965f-56d9321333b0/volume", "rel": "self"}, {"href": "http://localhost/nodes/3553aeb9-feec-4eee-965f-56d9321333b0/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.115887s] ... 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-479f6d09-1acc-4505-a4d8-0018fccb2a36 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": "43e54245-cc2f-423f-8d65-100e9053c228", "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/43e54245-cc2f-423f-8d65-100e9053c228", "rel": "self"}, {"href": "http://localhost/nodes/43e54245-cc2f-423f-8d65-100e9053c228", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "123456", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.120752s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.140726s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.142461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/57439659-f736-436b-b7c9-7ef1b0989f14 WITH [{'path': '/description', 'value': '123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812 3456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0110a018-7c9a-4176-8041-f7e4610032be 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}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_addresses [0.077469s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eb0a18a8-7b54-445c-af29-a4dc88a51c25 X-Openstack-Ironic-Api-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.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.087048s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_node_uuid [0.071309s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-71df3349-0656-4a45-a42a-2cfb5f3c4b6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.185508s] ... 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-48a42692-3c95-4559-8d39-78f5f3cebc86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.106985s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.126939s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=f0f75057-b07b-423d-ace8-e37c967da1fb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b912199f-9fa8-4ba7-a37f-a9396e22ab15 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": "f0f75057-b07b-423d-ace8-e37c967da1fb", "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/f0f75057-b07b-423d-ace8-e37c967da1fb", "rel": "self"}, {"href": "http://localhost/nodes/f0f75057-b07b-423d-ace8-e37c967da1fb", "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"]}} {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.078535s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.063506s] ... ok {2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.065252s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.175675s] ... 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-1b50cd37-da6b-4b1c-a14a-bf71ebf222b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.534178s] ... ok {2} ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.095315s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.050087s] ... ok {2} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.060188s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.158606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e7ea21ab-ece3-41fa-a5d7-0f6a013d8fc7 X-Openstack-Ironic-Api-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.TestPatch.test_update_fails_bad_driver_info [0.413973s] ... 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-b97a4cf9-3db5-45f8-8fca-43bc3d24abd6 X-Openstack-Ironic-Api-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_utils.TestCheckAllowFields.test_allow_rescue_interface [0.066913s] ... ok {2} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.057194s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.049514s] ... ok {2} ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg [0.050488s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits [0.046386s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.126593s] ... 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-2e2d99ee-47c3-4a4f-b413-417251da6c70 X-Openstack-Ironic-Api-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.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise [0.047745s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_bios_boot_mode [0.142405s] ... 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-141a47d4-0e9a-48d1-b55c-0987dba79783 X-Openstack-Ironic-Api-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_utils.TestCheckAllowFields.test_allow_volume [0.046826s] ... ok {2} ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable [0.058724s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.113609s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=c624b93e-73fd-4662-bc3c-5e40940da06f WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d5216d48-c0ea-4d80-8adf-d97a9bc5fa5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.068946s] ... ok {2} ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable [0.064297s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version [0.057282s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.057773s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_uefi_boot_mode [0.169839s] ... 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-1b3aaf4e-a06d-4139-8b98-5f7c0667f6ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.044490s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.076184s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.047671s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.055144s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.049387s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_invalid_boot_mode [0.118424s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.059093s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.055977s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version [0.092266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc8020fc-7232-4dd0-9586-da137f8d4db2 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_utils.TestCheckAllowFields.test_check_allow_configdrive [0.101510s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.088595s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_microversion_headers [0.107362s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.092808s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version [0.098878s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd04a008-d238-4e91-b2ce-ac428cf782c2 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_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.063881s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.064234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3aa16418-dd63-49cd-b02e-7bcb40c49464 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_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed [0.069707s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps [0.069134s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty [0.074509s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported [0.130070s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older [0.058119s] ... ok {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.992288s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs [0.087167s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail [0.075680s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.045264s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links [0.590906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-826a510a-f433-487a-be77-b39f7675c94c 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": "fc88b72c-6146-4bae-930e-c328b567bfaa", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/fc88b72c-6146-4bae-930e-c328b567bfaa", "rel": "self"}, {"href": "http://localhost/runbooks/fc88b72c-6146-4bae-930e-c328b567bfaa", "rel": "bookmark"}]}, {"uuid": "ab828bb9-0a65-4733-ab8d-6289412a4545", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/ab828bb9-0a65-4733-ab8d-6289412a4545", "rel": "self"}, {"href": "http://localhost/runbooks/ab828bb9-0a65-4733-ab8d-6289412a4545", "rel": "bookmark"}]}, {"uuid": "7e2be92d-8f6a-459b-8ebd-069d9dbd8af2", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/7e2be92d-8f6a-459b-8ebd-069d9dbd8af2", "rel": "self"}, {"href": "http://localhost/runbooks/7e2be92d-8f6a-459b-8ebd-069d9dbd8af2", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=7e2be92d-8f6a-459b-8ebd-069d9dbd8af2"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.065291s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.046639s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_custom_fields [0.119734s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87d06001-fcad-4d31-9ffb-19c3bb31efdf 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": "f0b01a98-d3d8-4cc4-a32c-56d435aee922", "links": [{"href": "http://localhost/v1/runbooks/f0b01a98-d3d8-4cc4-a32c-56d435aee922", "rel": "self"}, {"href": "http://localhost/runbooks/f0b01a98-d3d8-4cc4-a32c-56d435aee922", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "471941e1-230f-459b-bb97-79a7f2d6e698", "links": [{"href": "http://localhost/v1/runbooks/471941e1-230f-459b-bb97-79a7f2d6e698", "rel": "self"}, {"href": "http://localhost/runbooks/471941e1-230f-459b-bb97-79a7f2d6e698", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "87f04749-4794-4dac-823a-4779875def46", "links": [{"href": "http://localhost/v1/runbooks/87f04749-4794-4dac-823a-4779875def46", "rel": "self"}, {"href": "http://localhost/runbooks/87f04749-4794-4dac-823a-4779875def46", "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=87f04749-4794-4dac-823a-4779875def46"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.057722s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.054116s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.059590s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_default_limit [0.137718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dddc42ef-107c-4157-b98e-41ab568b4834 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": "f64e3428-0a8a-40ce-b1b8-65c2787b9fb5", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/f64e3428-0a8a-40ce-b1b8-65c2787b9fb5", "rel": "self"}, {"href": "http://localhost/runbooks/f64e3428-0a8a-40ce-b1b8-65c2787b9fb5", "rel": "bookmark"}]}, {"uuid": "93a7d0d2-4b5c-4ff7-9898-684cf103518d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/93a7d0d2-4b5c-4ff7-9898-684cf103518d", "rel": "self"}, {"href": "http://localhost/runbooks/93a7d0d2-4b5c-4ff7-9898-684cf103518d", "rel": "bookmark"}]}, {"uuid": "f363629d-91c8-4855-af00-0f339792c290", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/f363629d-91c8-4855-af00-0f339792c290", "rel": "self"}, {"href": "http://localhost/runbooks/f363629d-91c8-4855-af00-0f339792c290", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=f363629d-91c8-4855-af00-0f339792c290"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.050573s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query [0.088496s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d02f6e39-c7df-44bc-8e34-9ef830b0a186 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": "986cfe42-895b-4eee-8475-6a443efee105", "created_at": "2025-05-22T18:21:29.784613+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/986cfe42-895b-4eee-8475-6a443efee105", "rel": "self"}, {"href": "http://localhost/runbooks/986cfe42-895b-4eee-8475-6a443efee105", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.051429s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [1.409187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/aa2455fa-f931-4eb4-90a4-4d13b0e16984 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ec9c6b53-5c8b-4805-a07c-7b46c3a78fa1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "aa2455fa-f931-4eb4-90a4-4d13b0e16984", "created_at": "2025-05-22T18:21:28.524744+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/aa2455fa-f931-4eb4-90a4-4d13b0e16984", "rel": "self"}, {"href": "http://localhost/nodes/aa2455fa-f931-4eb4-90a4-4d13b0e16984", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/aa2455fa-f931-4eb4-90a4-4d13b0e16984/ports", "rel": "self"}, {"href": "http://localhost/nodes/aa2455fa-f931-4eb4-90a4-4d13b0e16984/ports", "rel": "bookmark"}]} PATCH /v1/nodes/1b43d740-0c4b-4db7-b5e4-91263141d077 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-006fcbdf-b83c-41dc-a525-e8b73d7a86f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1b43d740-0c4b-4db7-b5e4-91263141d077", "created_at": "2025-05-22T18:21:28.653996+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/1b43d740-0c4b-4db7-b5e4-91263141d077", "rel": "self"}, {"href": "http://localhost/nodes/1b43d740-0c4b-4db7-b5e4-91263141d077", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1b43d740-0c4b-4db7-b5e4-91263141d077/ports", "rel": "self"}, {"href": "http://localhost/nodes/1b43d740-0c4b-4db7-b5e4-91263141d077/ports", "rel": "bookmark"}]} PATCH /v1/nodes/bcd08f4c-9ec1-4202-9e11-b1029031f4b4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a32ff040-3e2c-45a5-bb8e-8386a4fafd0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "bcd08f4c-9ec1-4202-9e11-b1029031f4b4", "created_at": "2025-05-22T18:21:28.741235+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/bcd08f4c-9ec1-4202-9e11-b1029031f4b4", "rel": "self"}, {"href": "http://localhost/nodes/bcd08f4c-9ec1-4202-9e11-b1029031f4b4", "rel": "bookmark"} ], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bcd08f4c-9ec1-4202-9e11-b1029031f4b4/ports", "rel": "self"}, {"href": "http://localhost/nodes/bcd08f4c-9ec1-4202-9e11-b1029031f4b4/ports", "rel": "bookmark"}]} PATCH /v1/nodes/99b126a4-e31a-469f-a394-f54440e7ce98 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55a04f68-b0b1-4e73-ab8d-fe6876f7aab8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "99b126a4-e31a-469f-a394-f54440e7ce98", "created_at": "2025-05-22T18:21:28.843618+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/99b126a4-e31a-469f-a394-f54440e7ce98", "rel": "self"}, {"href": "http://localhost/nodes/99b126a4-e31a-469f-a394-f54440e7ce98", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/99b126a4-e31a-469f-a394-f54440e7ce98/ports", "rel": "self"}, {"href": "http://localhost/nodes/99b126a4-e31a-469f-a394-f54440e7ce98/ports", "rel": "bookmark"}]} PATCH /v1/nodes/0379cbb9-2945-4eff-b375-40bbd9c78008 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f4e9b25-63aa-451c-9261-cb4ae31711b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0379cbb9-2945-4eff-b375-40bbd9c78008", "created_at": "2025-05-22T18:21:28.940339+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/0379cbb9-2945-4eff-b375-40bbd9c78008", "rel": "self"}, {"href": "http://localhost/nodes/0379cbb9-2945-4eff-b375-40bbd9c78008", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0379cbb9-2945-4eff-b375-40bbd9c78008/ports", "rel": "self"}, {"href": "http://localhost/nodes/0379cbb9-2945-4eff-b375-40bbd9c78008/ports", "rel": "bookmark"}]} PATCH /v1/nodes/77e7ea7f-aae8-44b2-8ee7-3991a288edb0 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-873a7c93-4537-4176-9ecc-4b2b6853ba42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "77e7ea7f-aae8-44b2-8ee7-3991a288edb0", "created_at": "2025-05-22T18:21:29.043396+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/77e7ea7f-aae8-44b2-8ee7-3991a288edb0", "rel": "self"}, {"href": "http://localhost/nodes/77e7ea7f-aae8-44b2-8ee7-3991a288edb0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/77e7ea7f-aae8-44b2-8ee7-3991a288edb0/ports", "rel": "self"}, {"href": "http://localhost/nodes/77e7ea7f-aae8-44b2-8ee7-3991a288edb0/ports", "rel": "bookmark"}]} PATCH /v1/nodes/21de7973-7f26-4a07-b79d-ee6360791375 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fcc731ce-767e-4a0c-92be-6e7fab031f46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "21de7973-7f26-4a07-b79d-ee6360791375", "created_at": "2025-05-22T18:21:29.160701+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/21de7973-7f26-4a07-b79d-ee6360791375", "rel": "self"}, {"href": "http://localhost/nodes/21de7973-7f26-4a07-b79d-ee6360791375", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/21de7973-7f26-4a07-b79d-ee6360791375/ports", "rel": "self"}, {"href": "http://localhost/nodes/21de7973-7f26-4a07-b79d-ee6360791375/ports", "rel": "bookmark"}]} PATCH /v1/nodes/9232e0db-1f47-4ed7-a43f-c02599faa858 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11591cc8-5a67-476c-aae4-3dc929f778cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "9232e0db-1f47-4ed7-a43f-c02599faa858", "created_at": "2025-05-22T18:21:29.233201+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/9232e0db-1f47-4ed7-a43f-c02599faa858", "rel": "self"}, {"href": "http://localhost/nodes/9232e0db-1f47-4ed7-a43f-c02599faa858", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9232e0db-1f47-4ed7-a43f-c02599faa858/ports", "rel": "self"}, {"href": "http://localhost/nodes/9232e0db-1f47-4ed7-a43f-c02599faa858/ports", "rel": "bookmark"}]} PATCH /v1/nodes/6f318f46-77d9-4cac-9f6a-97fb6ebba638 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-57f6e23c-5b61-4d0c-913f-fc8458dc0878 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6f318f46-77d9-4cac-9f6a-97fb6ebba638", "created_at": "2025-05-22T18:21:29.320433+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/6f318f46-77d9-4cac-9f6a-97fb6ebba638", "rel": "self"}, {"href": "http://localhost/nodes/6f318f46-77d9-4cac-9f6a-97fb6ebba638", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6f318f46-77d9-4cac-9f6a-97fb6ebba638/ports", "rel": "self"}, {"href": "http://localhost/nodes/6f318f46-77d9-4cac-9f6a-97fb6ebba638/ports", "rel": "bookmark"}]} PATCH /v1/nodes/138ea6ed-821f-46c2-a7d4-40c37f35213e WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c56d950-66c1-4f5c-861e-02d828a2fd13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "138ea6ed-821f-46c2-a7d4-40c37f35213e", "created_at": "2025-05-22T18:21:29.440334+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/138ea6ed-821f-46c2-a7d4-40c37f35213e", "rel": "self"}, {"href": "http://localhost/nodes/138ea6ed-821f-46c2-a7d4-40c37f35213e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/138ea6ed-821f-46c2-a7d4-40c37f35213e/ports", "rel": "self"}, {"href": "http://localhost/nodes/138ea6ed-821f-46c2-a7d4-40c37f35213e/ports", "rel": "bookmark"}]} PATCH /v1/nodes/80ae2e6a-2cbd-4a4a-b282-6738cabfaa09 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8af42bfe-f9e6-4e34-8293-49463d61ea96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "80ae2e6a-2cbd-4a4a-b282-6738cabfaa09", "created_at": "2025-05-22T18:21:29.509758+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/80ae2e6a-2cbd-4a4a-b282-6738cabfaa09", "rel": "self"}, {"href": "http://localhost/nodes/80ae2e6a-2cbd-4a4a-b282-6738cabfaa09", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/80ae2e6a-2cbd-4a4a-b282-6738cabfaa09/ports", "rel": "self"}, {"href": "http://localhost/nodes/80ae2e6a-2cbd-4a4a-b282-6738cabfaa09/ports", "rel": "bookmark"}]} PATCH /v1/nodes/2a6faccd-a0c1-42c8-98ca-26bd51678886 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad5ad3b7-3fb4-4126-b775-f3190e487adc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "2a6faccd-a0c1-42c8-98ca-26bd51678886", "created_at": "2025-05-22T18:21:29.622646+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/2a6faccd-a0c1-42c8-98ca-26bd51678886", "rel": "self"}, {"href": "http://localhost/nodes/2a6faccd-a0c1-42c8-98ca-26bd51678886", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2a6faccd-a0c1-42c8-98ca-26bd51678886/ports", "rel": "self"}, {"href": "http://localhost/nodes/2a6faccd-a0c1-42c8-98ca-26bd51678886/ports", "rel": "bookmark"}]} PATCH /v1/nodes/10f845b9-2a0a-4193-ba69-673e6b60541f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cdaf175e-9f7f-418c-bb69-9e681cf7853c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "10f845b9-2a0a-4193-ba69-673e6b60541f", "created_at": "2025-05-22T18:21:29.732315+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/10f845b9-2a0a-4193-ba69-673e6b60541f", "rel": "self"}, {"href": "http://localhost/nodes/10f845b9-2a0a-4193-ba69-673e6b60541f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/10f845b9-2a0a-4193-ba69-673e6b60541f/ports", "rel": "self"}, {"href": "http://localhost/nodes/10f845b9-2a0a-4193-ba69-673e6b60541f/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.059933s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.065416s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query_false [0.134085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5edf1fc-bf18-45d3-8d78-c3c3194cf65e 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": "9a0eb021-6d7b-4072-a734-d16e7955dc01", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/9a0eb021-6d7b-4072-a734-d16e7955dc01", "rel": "self"}, {"href": "http://localhost/runbooks/9a0eb021-6d7b-4072-a734-d16e7955dc01", "rel": "bookmark"}]}]} GET /v1/runbooks?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b280c21-a628-4ffb-8048-97aecf9bbf9e 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": "9a0eb021-6d7b-4072-a734-d16e7955dc01", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/9a0eb021-6d7b-4072-a734-d16e7955dc01", "rel": "self"}, {"href": "http://localhost/runbooks/9a0eb021-6d7b-4072-a734-d16e7955dc01", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.047044s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.093671s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.255086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e0f1811-fa83-4835-b58c-ee0eb8e05c55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "e571cff5-3c75-47ed-b13b-ae0f9a4f7f86", "created_at": "2025-05-22T18:21:29.948486+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/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86", "rel": "self"}, {"href": "http://localhost/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86/ports", "rel": "self"}, {"href": "http://localhost/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86/states", "rel": "self"}, {"href": "http://localhost/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86/volume", "rel": "self"}, {"href": "http://localhost/nodes/e571cff5-3c75-47ed-b13b-ae0f9a4f7f86/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_sort_key_allowed [0.162277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=name&detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09c7ed91-4013-46b1-a757-c126e1f5826e 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": "0aa66164-49b1-4889-bdd2-b64d4b483284", "created_at": "2025-05-22T18:21:30.075756+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0aa66164-49b1-4889-bdd2-b64d4b483284", "rel": "self"}, {"href": "http://localhost/runbooks/0aa66164-49b1-4889-bdd2-b64d4b483284", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "dcd5b1bb-e9a7-4814-8ffa-f92d78f605f5", "created_at": "2025-05-22T18:21:30.073724+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/dcd5b1bb-e9a7-4814-8ffa-f92d78f605f5", "rel": "self"}, {"href": "http://localhost/runbooks/dcd5b1bb-e9a7-4814-8ffa-f92d78f605f5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "642fc776-8f4f-4e57-b276-69ce481d1cc1", "created_at": "2025-05-22T18:21:30.050151+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/642fc776-8f4f-4e57-b276-69ce481d1cc1", "rel": "self"}, {"href": "http://localhost/runbooks/642fc776-8f4f-4e57-b276-69ce481d1cc1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.068181s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.072151s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_and_fields [0.107268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dbd7be0e-94c9-4422-89da-d59fe8ec469f X-Openstack-Ironic-Api-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_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.071719s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.204916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/a7625ee2-a520-4a36-ae82-341d14d21339 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-8883b74e-74f4-4cf2-992a-b89d1034898c 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 \\\"a7625ee2-a520-4a36-ae82-341d14d21339\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_false_and_fields [0.088363s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=False&fields=steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-186f6daf-3636-4873-99e4-d383bcb8621b 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/7c67dd86-cff0-4e40-b243-fd5dedfacc16", "rel": "self"}, {"href": "http://localhost/runbooks/7c67dd86-cff0-4e40-b243-fd5dedfacc16", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.048180s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.048592s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_empty [0.089844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da126b6e-147b-41c3-b270-3e5fc2cf0ecc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": []} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.051488s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_all_invalid_api_version [0.078793s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow runbooks\"}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.067407s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.055941s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_custom_fields [0.089439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e59cf0c5-1066-437d-8328-6701c5954276 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": "fb3e9dd5-969a-47c8-97d4-08fcf2c53eba", "links": [{"href": "http://localhost/v1/runbooks/fb3e9dd5-969a-47c8-97d4-08fcf2c53eba", "rel": "self"}, {"href": "http://localhost/runbooks/fb3e9dd5-969a-47c8-97d4-08fcf2c53eba", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "9704fdaf-0243-4c94-a8e7-0846de1ea067", "links": [{"href": "http://localhost/v1/runbooks/9704fdaf-0243-4c94-a8e7-0846de1ea067", "rel": "self"}, {"href": "http://localhost/runbooks/9704fdaf-0243-4c94-a8e7-0846de1ea067", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "05801894-f56e-4186-9928-f3bf110e3610", "links": [{"href": "http://localhost/v1/runbooks/05801894-f56e-4186-9928-f3bf110e3610", "rel": "self"}, {"href": "http://localhost/runbooks/05801894-f56e-4186-9928-f3bf110e3610", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.047539s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.047661s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_pagination_no_uuid [0.111762s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93c544ef-9b66-4597-9f79-5823bf4d5da3 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/a282f704-ec93-4a8a-a0e3-bf39e85a39f9", "rel": "self"}, {"href": "http://localhost/runbooks/a282f704-ec93-4a8a-a0e3-bf39e85a39f9", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/80cb89b0-a6f7-4f87-a235-d49190a2f666", "rel": "self"}, {"href": "http://localhost/runbooks/80cb89b0-a6f7-4f87-a235-d49190a2f666", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=80cb89b0-a6f7-4f87-a235-d49190a2f666"} {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [1.476520s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs [0.041429s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail [0.039583s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_custom_fields_invalid_fields [0.093376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/49ac99f0-6117-43de-b157-82f54a5e983b?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c55e654a-8fed-40f8-b9f1-77ad09d6eb03 X-Openstack-Ironic-Api-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_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.068025s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one [0.041061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/db467b41-cc84-4488-99e1-9bc2a8486109 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c944336a-6b05-419d-9b6d-48b5d917778f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "db467b41-cc84-4488-99e1-9bc2a8486109", "created_at": "2025-05-22T18:21:30.824154+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/db467b41-cc84-4488-99e1-9bc2a8486109", "rel": "self"}, {"href": "http://localhost/runbooks/db467b41-cc84-4488-99e1-9bc2a8486109", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_custom_fields [0.053517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/01b89835-0d27-4c8f-b526-2b64fcb1ce07?fields=name,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-730dc557-0d47-4d72-9136-e1cfc89c7dac 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/01b89835-0d27-4c8f-b526-2b64fcb1ce07", "rel": "self"}, {"href": "http://localhost/runbooks/01b89835-0d27-4c8f-b526-2b64fcb1ce07", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.064274s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_invalid_api_version [0.055865s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/bc3bcc17-bac7-472b-b294-64f06bea4148 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow runbooks\"}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.082259s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_links [0.051276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/c444dfa2-898e-4bac-be88-6c01321b8522 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16ada90b-000e-441d-a8f8-f305851508a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c444dfa2-898e-4bac-be88-6c01321b8522", "created_at": "2025-05-22T18:21:30.976934+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c444dfa2-898e-4bac-be88-6c01321b8522", "rel": "self"}, {"href": "http://localhost/runbooks/c444dfa2-898e-4bac-be88-6c01321b8522", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/c444dfa2-898e-4bac-be88-6c01321b8522 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eee8b352-3661-44ac-b6bf-d7f41187f045 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c444dfa2-898e-4bac-be88-6c01321b8522", "created_at": "2025-05-22T18:21:30.976934+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c444dfa2-898e-4bac-be88-6c01321b8522", "rel": "self"}, {"href": "http://localhost/runbooks/c444dfa2-898e-4bac-be88-6c01321b8522", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /runbooks/c444dfa2-898e-4bac-be88-6c01321b8522 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-77235b2c-9f0f-4e31-83b0-6b78a0907882 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c444dfa2-898e-4bac-be88-6c01321b8522", "created_at": "2025-05-22T18:21:30.976934+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c444dfa2-898e-4bac-be88-6c01321b8522", "rel": "self"}, {"href": "http://localhost/runbooks/c444dfa2-898e-4bac-be88-6c01321b8522", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.067715s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_many [0.081631s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b84713fa-0d7d-42a5-b58d-9f52eca6491d 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": "3e731025-4d59-44de-9aae-bd2a162d7f74", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/3e731025-4d59-44de-9aae-bd2a162d7f74", "rel": "self"}, {"href": "http://localhost/runbooks/3e731025-4d59-44de-9aae-bd2a162d7f74", "rel": "bookmark"}]}, {"uuid": "ba32418e-89a7-4f04-bd61-50320bcc6a8b", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/ba32418e-89a7-4f04-bd61-50320bcc6a8b", "rel": "self"}, {"href": "http://localhost/runbooks/ba32418e-89a7-4f04-bd61-50320bcc6a8b", "rel": "bookmark"}]}, {"uuid": "10f5b842-72ff-42c4-ba45-f8137b204348", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/10f5b842-72ff-42c4-ba45-f8137b204348", "rel": "self"}, {"href": "http://localhost/runbooks/10f5b842-72ff-42c4-ba45-f8137b204348", "rel": "bookmark"}]}, {"uuid": "2158f790-be49-4727-9768-15b1b50ec03c", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/2158f790-be49-4727-9768-15b1b50ec03c", "rel": "self"}, {"href": "http://localhost/runbooks/2158f790-be49-4727-9768-15b1b50ec03c", "rel": "bookmark"}]}, {"uuid": "c693bac7-3806-45f7-a816-2492e96a8677", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/runbooks/c693bac7-3806-45f7-a816-2492e96a8677", "rel": "self"}, {"href": "http://localhost/runbooks/c693bac7-3806-45f7-a816-2492e96a8677", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_one [0.055949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c79764b-039d-4d0b-a50f-dca0821eba80 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": "faa0d263-9cc2-4f7e-b999-b84af8ae028f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/faa0d263-9cc2-4f7e-b999-b84af8ae028f", "rel": "self"}, {"href": "http://localhost/runbooks/faa0d263-9cc2-4f7e-b999-b84af8ae028f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.100082s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sensitive_data_masked [0.048700s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/6d634838-f19a-43bf-87dd-074a9cee3ac5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-686b1b72-289a-44a2-b7ff-cc108b810529 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6d634838-f19a-43bf-87dd-074a9cee3ac5", "created_at": "2025-05-22T18:21:31.178402+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6d634838-f19a-43bf-87dd-074a9cee3ac5", "rel": "self"}, {"href": "http://localhost/runbooks/6d634838-f19a-43bf-87dd-074a9cee3ac5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.105591s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key [0.097808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2370e943-9085-447e-8146-0ff5948affde 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": "3ec24a81-40a3-43e1-9d9c-2ee6913d66b5", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/3ec24a81-40a3-43e1-9d9c-2ee6913d66b5", "rel": "self"}, {"href": "http://localhost/runbooks/3ec24a81-40a3-43e1-9d9c-2ee6913d66b5", "rel": "bookmark"}]}, {"uuid": "40e63932-5f6c-4306-ba7e-3ece5c397de5", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/40e63932-5f6c-4306-ba7e-3ece5c397de5", "rel": "self"}, {"href": "http://localhost/runbooks/40e63932-5f6c-4306-ba7e-3ece5c397de5", "rel": "bookmark"}]}, {"uuid": "5d428609-c12e-4051-ac69-38fd32ecb73b", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/5d428609-c12e-4051-ac69-38fd32ecb73b", "rel": "self"}, {"href": "http://localhost/runbooks/5d428609-c12e-4051-ac69-38fd32ecb73b", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.095036s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_allowed [0.114414s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=name&detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e11c85d4-75e8-4ebd-8980-63b7ea905823 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": "92f72196-e9bd-4433-aa5b-4bb5a0e42180", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/92f72196-e9bd-4433-aa5b-4bb5a0e42180", "rel": "self"}, {"href": "http://localhost/runbooks/92f72196-e9bd-4433-aa5b-4bb5a0e42180", "rel": "bookmark"}]}, {"uuid": "1e354962-7430-4a25-a20c-215e583e2cb2", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/1e354962-7430-4a25-a20c-215e583e2cb2", "rel": "self"}, {"href": "http://localhost/runbooks/1e354962-7430-4a25-a20c-215e583e2cb2", "rel": "bookmark"}]}, {"uuid": "def16b01-ae92-4db5-a037-630d84ede854", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/def16b01-ae92-4db5-a037-630d84ede854", "rel": "self"}, {"href": "http://localhost/runbooks/def16b01-ae92-4db5-a037-630d84ede854", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.075790s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_invalid [0.041088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-733f6df1-47ec-42b9-8a44-cf358c8f0208 X-Openstack-Ironic-Api-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-5f908c3a-f79f-476e-9da8-97055af4d933 X-Openstack-Ironic-Api-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-40ace089-b45d-411d-8d28-bcfeec34c566 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [1.151900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93 WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fcdfa692-4d42-402b-a09e-becfaa4f4f77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2f3fe420-8dc1-4084-ad22-742b4e625c93", "created_at": "2025-05-22T18:21:30.540152+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/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "bookmark"}]} PATCH /v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93 WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ff9ed78a-4b5e-400f-b422-f651bec74ae8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2f3fe420-8dc1-4084-ad22-742b4e625c93", "created_at": "2025-05-22T18:21:30.540152+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/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "bookmark"}]} PATCH /v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93 WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9783acfd-3e57-4563-a142-ebbebd2d3ab9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2f3fe420-8dc1-4084-ad22-742b4e625c93", "created_at": "2025-05-22T18:21:30.540152+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/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "s elf"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "bookmark"}]} PATCH /v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93 WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bbc5a717-f518-4258-9597-a4f3fac98f87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2f3fe420-8dc1-4084-ad22-742b4e625c93", "created_at": "2025-05-22T18:21:30.540152+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/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ 2f3fe420-8dc1-4084-ad22-742b4e625c93 WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8b76d8c-9650-4b6f-b578-76a48329ab51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2f3fe420-8dc1-4084-ad22-742b4e625c93", "created_at": "2025-05-22T18:21:30.540152+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/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "bookmark"}]} PATCH /v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93 WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-43d80938-95dc-4961-b54a-fe5ae5871784 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2f3fe420-8dc1-4084-ad22-742b4e625c93", "created_at": "2025-05-22T18:21:30.540152+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/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "bookmark"}]} PATCH /v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93 WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ade95ce1-c244-408f-a3e0-acfe74bab519 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2f3fe420-8dc1-4084-ad22-742b4e625c93", "created_at": "2025-05-22T18:21:30.540152+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/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "self"}, {"href" : "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "bookmark"}]} PATCH /v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93 WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cce11d3-9b7c-40fb-967a-9c9da8d75b46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2f3fe420-8dc1-4084-ad22-742b4e625c93", "created_at": "2025-05-22T18:21:30.540152+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/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f3fe420-8dc1-4084-ad22-742b4e625c93/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve [0.084576s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_multi [0.093188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/435728e6-6170-4cf3-9111-515f007bd1c6 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-11bb81c5-5969-4d27-8cac-540ffd1f2c68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "435728e6-6170-4cf3-9111-515f007bd1c6", "created_at": "2025-05-22T18:21:31.495823+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/435728e6-6170-4cf3-9111-515f007bd1c6", "rel": "self"}, {"href": "http://localhost/runbooks/435728e6-6170-4cf3-9111-515f007bd1c6", "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}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_root_non_existent [0.039179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a9cdc7f7-3f6e-407b-ab83-3d6b49c9db23 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8d2950b0-30e0-4b2e-83fd-2eb5f161d664 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail [0.085414s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_too_high_index_step_fail [0.040907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/d686af10-0128-4653-829f-b760244c2eb5 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-ac6d4009-fa61-4d39-bd3b-4dcff37be451 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_foo [0.053299s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/833f8635-da26-4d76-8bc3-1c41641b405d WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cdf9d3b9-850d-4550-957e-e7a6d28e819d X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.094430s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy [0.071702s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.339520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1873d316-88fa-48bf-9376-795c67cb523a WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-22a2f508-8ecc-4a07-9f3d-16755bf73771 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/1873d316-88fa-48bf-9376-795c67cb523a WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0b15c629-d132-41e4-85df-8fec0469e21b 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/1873d316-88fa-48bf-9376-795c67cb523a WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c1a904de-7146-48e3-94a9-228980a2a2fc 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/1873d316-88fa-48bf-9376-795c67cb523a WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8c8a1bfd-3e1f-4bb2-9f02-ed4fae0241ee 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/1873d316-88fa-48bf-9376-795c67cb523a WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0e0dc29c-2f19-4d9c-be25-06576bb47a38 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/1873d316-88fa-48bf-9376-795c67cb523a WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-417994ca-a4ab-41bd-99ec-029d90b59c0a 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/1873d316-88fa-48bf-9376-795c67cb523a WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-04bf2a6d-42c8-4b40-b5f3-a3b0adac36da 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/1873d316-88fa-48bf-9376-795c67cb523a WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-298ad89f-ef62-4902-8c56-a7c0e3d4f861 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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden [0.086963s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_multi [0.200755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/3492d44f-d36c-4f13-bfce-cd564f983e2c WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-322e6988-abd2-42a4-9b8b-df677abbd242 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3492d44f-d36c-4f13-bfce-cd564f983e2c", "created_at": "2025-05-22T18:21:31.771519+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3492d44f-d36c-4f13-bfce-cd564f983e2c", "rel": "self"}, {"href": "http://localhost/runbooks/3492d44f-d36c-4f13-bfce-cd564f983e2c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}]} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project [0.065626s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin [0.061475s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.034342s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_name [0.133035s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/19881af4-e8f7-4348-9a88-a053f1158fb2 WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ffc19c9a-74d6-4131-b309-bacea0bb8dc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.047025s] ... ok {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [1.370696s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_property_fail [0.078027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e1b86088-8b12-48bb-a64e-4fadac42438f WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-47a6c6b4-3e55-4774-b1e5-486a393ee259 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.064059s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee [0.324462s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbf859d8-d727-429c-81fd-b7f8cd33fa27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed", "created_at": "2025-05-22T18:21:31.985576+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/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed", "rel": "self"}, {"href": "http://localhost/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed/ports", "rel": "self"}, {"href": "http://localhost/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed/states", "rel": "self"}, {"href": "http://localhost/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed/volume", "rel": "self"}, {"href": "http://localhost/nodes/f8764f5a-e1d3-4f1c-abe3-4d3f17bf81ed/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.063745s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_fail [0.136976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/02bec5f0-bd62-4a5d-99af-7666ff0cbf4c WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e9ab8fce-6a64-49fc-a8b7-1ee309d7f7db X-Openstack-Ironic-Api-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 non-existent object '1'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.072354s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api [0.140795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/29df3325-1434-4fac-bb20-e7ea4f57f42c WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e5e76c46-b637-4909-a83a-26eb6e7fa39d 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_versions.TestMaxVersionString.test_max_version_pinned [0.069119s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_property_fail [0.120288s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/0a56ebcb-6b2d-44b2-ac6f-adca07a46925 WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df47e517-5ca1-424a-841b-4832e55d3b68 X-Openstack-Ironic-Api-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 non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.132142s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-dc609e34-4d72-4534-80e3-b45eeb7adfce 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_runbook.TestPatch.test_remove_only_step_fail [0.136616s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/0d59f7a8-02a8-4ee6-b301-20735e31383b WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5f3a0784-a4b1-4c74-960b-a80dcbe38dcf X-Openstack-Ironic-Api-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_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.079754s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_steps [0.127440s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/8d97c1ff-99fa-4a8b-a6ca-de41ab7cc66f WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dafdb4b5-7d72-4822-91b4-631fd2c2034c X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data [0.333026s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/b2a6c882-a5a6-4542-aa6b-a69a055425c2 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-9abaae9b-dba9-4bb2-b3a7-105963f573f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "b2a6c882-a5a6-4542-aa6b-a69a055425c2", "created_at": "2025-05-22T18:21:32.405717+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/b2a6c882-a5a6-4542-aa6b-a69a055425c2", "rel": "self"}, {"href": "http://localhost/nodes/b2a6c882-a5a6-4542-aa6b-a69a055425c2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b2a6c882-a5a6-4542-aa6b-a69a055425c2/ports", "rel": "self"}, {"href": "http://localhost/nodes/b2a6c882-a5a6-4542-aa6b-a69a055425c2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b2a6c882-a5a6-4542-aa6b -a69a055425c2/states", "rel": "self"}, {"href": "http://localhost/nodes/b2a6c882-a5a6-4542-aa6b-a69a055425c2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b2a6c882-a5a6-4542-aa6b-a69a055425c2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b2a6c882-a5a6-4542-aa6b-a69a055425c2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b2a6c882-a5a6-4542-aa6b-a69a055425c2/volume", "rel": "self"}, {"href": "http://localhost/nodes/b2a6c882-a5a6-4542-aa6b-a69a055425c2/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.116564s] ... 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-bfae5fb7-ab5d-4c89-8fcc-76511150c23c X-Openstack-Ironic-Api-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.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_uuid [0.106630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/cad97545-9bd7-4b72-840e-f68303dd647f WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-89ad19ba-ea91-48ae-b513-68d4dafbd2ae X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom [0.226569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5eea6bf-d304-4619-bd4a-372b6d24d020 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "ae76bb2a-f240-4d8e-95c5-84768fd0afc0", "created_at": "2025-05-22T18:21:32.790758+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/ae76bb2a-f240-4d8e-95c5-84768fd0afc0", "rel": "self"}, {"href": "http://localhost/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0/ports", "rel": "self"}, {"href": "http://localhost/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0/states", "rel": "self"}, {"href": "http://localhost/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0/volume", "rel": "self"}, {"href": "http://localhost/nodes/ae76bb2a-f240-4d8e-95c5-84768fd0afc0/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_duplicate_step [0.233841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b6ffe651-a0b1-4ff6-9573-1650af224183 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-e16d028b-034d-4595-a36e-b3bc52d951b2 X-Openstack-Ironic-Api-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_node.TestPatch.test_update_network_data_old_api [0.162698s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/091257b9-49af-4349-a4da-73668a0796cb 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-539edca8-717b-4fa7-9213-bdd5bc40a436 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}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_empty_step_list_fail [0.154129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/939fea18-674d-4f50-9688-97a9e83cae28 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3a0335d2-6688-44b9-941b-7322e85ca257 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format [0.179313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/0ee7cd6c-4816-465a-ae4b-c10c3f8dc3a4 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4097a273-da68-4522-b1ac-101d2e488b22 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}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_none [0.139724s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9abfba1d-9f40-4bb8-9aad-ed806def5fa0 WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6a4510a8-6a09-4f17-8ee6-18904e94bc95 X-Openstack-Ironic-Api-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_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.696728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2283b19b-b977-44fa-bc80-f2dd06879e00 X-Openstack-Ironic-Api-Maximum-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.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_too_long [0.124445s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/26d6f285-f9e9-4d99-bcaf-e1f7040aac5e WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e4a77ff-4d5b-48f6-a4b9-591b50c216a0 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [1.355736s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_step_interface_fail [0.128190s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a8cb46ba-f0cc-42e6-8ceb-bca9c6873210 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-1c4b830f-2d35-4df0-bb7b-c53f380515b3 X-Openstack-Ironic-Api-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_volume_connector.TestPatch.test_add_multi [0.163750s] ... 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-09919b09-0fd7-4f80-8598-55cf598ab8cc 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-22T18:21:33.427991+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"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.083740s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.082154s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface [0.429407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1 WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cbf0ee3-0e15-4a8d-a3d3-a397bb84aabc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "26e27185-31ca-40e3-bbd4-ea30868f25b1", "created_at": "2025-05-22T18:21:33.455255+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/26e27185-31ca-40e3-bbd4-ea30868f25b1", "rel": "self"}, {"href": "http://localhost/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1/ports", "rel": "self"}, {"href": "http://localhost/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1/states", "rel": "self"}, {"href": "http://localhost/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1/volume", "rel": "self"}, {"href": "http://localhost/nodes/26e27185-31ca-40e3-bbd4-ea30868f25b1/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.152338s] ... 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-91ec616f-a3e4-4452-842a-b35c15cdc72e X-Openstack-Ironic-Api-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.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.099168s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_multi [0.226363s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/f6fca84d-f8d6-4474-be12-5acdfc34bcd7 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-6f7a90d8-3ef5-458a-b6a0-4aca8ed4b70b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f6fca84d-f8d6-4474-be12-5acdfc34bcd7", "created_at": "2025-05-22T18:21:33.616229+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f6fca84d-f8d6-4474-be12-5acdfc34bcd7", "rel": "self"}, {"href": "http://localhost/runbooks/f6fca84d-f8d6-4474-be12-5acdfc34bcd7", "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.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.091430s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.138148s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/a6faca95-6171-4124-9908-5d496445a42f WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d4ba2ab5-8517-4225-9951-70eea2e4d09e 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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid [0.154444s] ... 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-3fd3b4e7-8aeb-49f8-879f-d6dcf0b84ece 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-22T18:21:33.785711+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_runbook.TestPatch.test_replace_name_already_exist [0.144756s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/84d8b605-bbaf-468e-b6c8-4fa494dd66e4 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-89e5a50c-8734-430b-b21a-8f14fe99528f X-Openstack-Ironic-Api-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 84d8b605-bbaf-468e-b6c8-4fa494dd66e4 already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.098119s] ... 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-9a4abc3d-5625-42e4-a96a-b774d1aff348 X-Openstack-Ironic-Api-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_volume_connector.TestPatch.test_add_root [0.052413s] ... 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-ea44962e-41fe-47ad-9cbe-d549935a19dc 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-22T18:21:33.967371+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_runbook.TestPatch.test_replace_non_existent_step_fail [0.159003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/ccd921f5-3f5d-4fdd-8999-840b15d579fc 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-4c7e766a-e72d-4c0f-bb51-e1b03e0a9ecb X-Openstack-Ironic-Api-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: list assignment index out of range\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.076830s] ... 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-3a9163ff-9dce-46c5-bf37-1206a65d2c91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.051215s] ... 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-d6c16af9-cb0c-48b0-b1e7-8b5acb5ec132 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok [0.308279s] ... 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-02fd5904-19eb-428a-af3a-987d49d6e24e 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-22T18:21:33.877242+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.112953s] ... 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-1c0a31d0-830f-481a-8f22-bd1987e800db 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-22T18:21:34.162845+00:00", "updated_at": "2025-05-22T18:21:34.171706+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-eb193588-aef5-4c39-b9f1-6b0787a33210 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-22T18:21:34.162845+00:00", "updated_at": "2025-05-22T18:21:34.171706+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_step_invalid_interface [0.182242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9a682322-53b0-4ff2-aa18-5248ed837899 WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8dd9ef66-3957-484f-a54b-dfa4216c020b X-Openstack-Ironic-Api-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_volume_connector.TestPatch.test_remove_node_id [0.056360s] ... 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-4b64cd2e-9df6-4360-9ce1-6f667511f615 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.064157s] ... 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-f4d97b44-e4a0-403b-90fb-02b97d70b28c X-Openstack-Ironic-Api-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 non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.060867s] ... 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-a761e115-225d-439b-beb6-2c699e812e8b X-Openstack-Ironic-Api-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_runbook.TestPatch.test_runbook_set_owner_public_system_scope [0.181066s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'ff8b26c4-fe8e-46e8-b0f2-3c0c0ed50c70', '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/ff8b26c4-fe8e-46e8-b0f2-3c0c0ed50c70 Openstack-Request-Id: req-4b831aab-8bea-43e8-b5ec-5e61a3a8e0db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ff8b26c4-fe8e-46e8-b0f2-3c0c0ed50c70", "created_at": "2025-05-22T18:21:34.356648+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ff8b26c4-fe8e-46e8-b0f2-3c0c0ed50c70", "rel": "self"}, {"href": "http://localhost/runbooks/ff8b26c4-fe8e-46e8-b0f2-3c0c0ed50c70", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/ff8b26c4-fe8e-46e8-b0f2-3c0c0ed50c70 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-3fcdca4c-9450-46c0-b8ff-86af2d7c6175 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ff8b26c4-fe8e-46e8-b0f2-3c0c0ed50c70", "created_at": "2025-05-22T18:21:34.356648+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ff8b26c4-fe8e-46e8-b0f2-3c0c0ed50c70", "rel": "self"}, {"href": "http://localhost/runbooks/ff8b26c4-fe8e-46e8-b0f2-3c0c0ed50c70", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist [0.076314s] ... 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-dfab3e5e-f265-447f-b204-e8b9391a265d X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.381596s] ... 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-2ae95e93-2a5e-41fe-90d3-2fa77a69b071 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-22T18:21:34.277892+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_volume_connector.TestPatch.test_replace_invalid_power_state [0.071712s] ... 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-2f50e3c5-30f6-4ae0-ba56-774d0693475e X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.057626s] ... 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-31238242-d940-4888-b857-e0a0a9d58dbe 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-22T18:21:34.599966+00:00", "updated_at": "2025-05-22T18:21:34.602995+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"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.066688s] ... 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-119ae447-6354-4a03-bc90-e0367cd40753 X-Openstack-Ironic-Api-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_runbook.TestPatch.test_runbook_set_owner_public_system_scope_fails [0.297267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '98726c02-eea0-4d0e-8b91-efe7588a7561', '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/98726c02-eea0-4d0e-8b91-efe7588a7561 Openstack-Request-Id: req-7fc9c039-bf78-4813-800d-cfbd6ff15c84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "98726c02-eea0-4d0e-8b91-efe7588a7561", "created_at": "2025-05-22T18:21:34.659180+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/98726c02-eea0-4d0e-8b91-efe7588a7561", "rel": "self"}, {"href": "http://localhost/runbooks/98726c02-eea0-4d0e-8b91-efe7588a7561", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/98726c02-eea0-4d0e-8b91-efe7588a7561 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-c72cd0ad-3fd1-4511-9e49-761c932fe3d0 X-Openstack-Ironic-Api-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_volume_connector.TestPatch.test_replace_node_uuid [0.064560s] ... 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-62ac2d12-b86c-4103-84bb-db7a5c576a6d 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-22T18:21:34.729695+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_update_ok_by_name_with_json [0.224851s] ... 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-6f1c9af3-fc00-4a1d-9b44-39f863a787ad 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-22T18:21:34.582794+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_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.067423s] ... 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-ed795893-21d4-4e19-b8e9-23c745aa38af X-Openstack-Ironic-Api-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.common.test_glance_service.TestGlanceImageService.test_download_with_retries [1.061137s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.060204s] ... 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-6c8f71d0-866e-43e9-b409-279ce21bd5ab X-Openstack-Ironic-Api-Maximum-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.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.081584s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.080860s] ... 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-2f701d9a-799d-44e2-942f-7aa4eec65065 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-22T18:21:34.934763+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"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.227446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99cd073e-5dad-4da3-9533-80cd44e14608 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "886a0009-6ffd-4c97-8157-82a2cc10d52b", "created_at": "2025-05-22T18:21:34.864530+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/886a0009-6ffd-4c97-8157-82a2cc10d52b", "rel": "self"}, {"href": "http://localhost/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b/ports", "rel": "self"}, {"href": "http://localhost/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b/states", "rel": "self"}, {"href": "http://localhost/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b/volume", "rel": "self"}, {"href": "http://localhost/nodes/886a0009-6ffd-4c97-8157-82a2cc10d52b/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_new_owner_for_project_owned_runbook [0.320611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '801476ad-fe0a-4cfd-b81d-f8baa948c0b2', '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/801476ad-fe0a-4cfd-b81d-f8baa948c0b2 Openstack-Request-Id: req-d53ae103-1844-40af-95b5-1dbb81565973 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "801476ad-fe0a-4cfd-b81d-f8baa948c0b2", "created_at": "2025-05-22T18:21:34.908742+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/801476ad-fe0a-4cfd-b81d-f8baa948c0b2", "rel": "self"}, {"href": "http://localhost/runbooks/801476ad-fe0a-4cfd-b81d-f8baa948c0b2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/801476ad-fe0a-4cfd-b81d-f8baa948c0b2 WITH [{'path': '/owner', 'value': 'projectY', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e3b16c6b-2f59-4d37-87c0-fdf807836b61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "801476ad-fe0a-4cfd-b81d-f8baa948c0b2", "created_at": "2025-05-22T18:21:34.908742+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectY", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/801476ad-fe0a-4cfd-b81d-f8baa948c0b2", "rel": "self"}, {"href": "http://localhost/runbooks/801476ad-fe0a-4cfd-b81d-f8baa948c0b2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.099414s] ... 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-6b860177-8d0b-4cbc-9c8b-74644d4b2b59 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-22T18:21:35.028558+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.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.128763s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.072072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.101689s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.070233s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/640cbea8-33e2-4859-b19a-1d5b2a83a5c1 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fd25ca00-665b-4663-b133-79a76dcc1bc3 X-Openstack-Ironic-Api-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 640cbea8-33e2-4859-b19a-1d5b2a83a5c1 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.075661s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation [0.263386s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20729177-dec8-47ad-8717-bd34dc7b6508 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "00a10425-2059-4a69-abac-5d6a623ed5fb", "created_at": "2025-05-22T18:21:35.117809+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/00a10425-2059-4a69-abac-5d6a623ed5fb", "rel": "self"}, {"href": "http://localhost/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb/ports", "rel": "self"}, {"href": "http://localhost/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb/states", "rel": "self"}, {"href": "http://localhost/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb/volume", "rel": "self"}, {"href": "http://localhost/nodes/00a10425-2059-4a69-abac-5d6a623ed5fb/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope [0.265470s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '44128507-650d-477f-ae29-7d33883e0ac9', '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/44128507-650d-477f-ae29-7d33883e0ac9 Openstack-Request-Id: req-7c30468b-13ff-4e84-8eb1-cf1a952af1db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "44128507-650d-477f-ae29-7d33883e0ac9", "created_at": "2025-05-22T18:21:35.223230+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/44128507-650d-477f-ae29-7d33883e0ac9", "rel": "self"}, {"href": "http://localhost/runbooks/44128507-650d-477f-ae29-7d33883e0ac9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/44128507-650d-477f-ae29-7d33883e0ac9 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17f3cb7e-0adc-41bf-b924-465e8de20c2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "44128507-650d-477f-ae29-7d33883e0ac9", "created_at": "2025-05-22T18:21:35.223230+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/44128507-650d-477f-ae29-7d33883e0ac9", "rel": "self"}, {"href": "http://localhost/runbooks/44128507-650d-477f-ae29-7d33883e0ac9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector [0.112092s] ... 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-04074acf-634a-4119-9254-16ae02043e7b 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-7b1e4702-99c8-40bc-89bb-dfca26d40a92 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.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned [0.154165s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6cc3c262-17b3-4a2d-b649-9074ba97ffe6 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2113acaa-9d1f-46c7-b451-d3a5db42ba2e 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 \\\"6cc3c262-17b3-4a2d-b649-9074ba97ffe6\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.179224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.148006s] ... 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-389da6e2-9f22-4379-b181-8ab31d79b102 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-22T18:21:35.438616+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-a9a25317-210d-41bd-83b3-f527b4453261 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-22T18:21:35.438616+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope_fails_if_public [0.223688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'af535c0a-1d4f-44de-9fa9-df874bf7a3a6', '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/af535c0a-1d4f-44de-9fa9-df874bf7a3a6 Openstack-Request-Id: req-8f690ecf-cc2c-4fda-a17f-e94c52b0c211 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "af535c0a-1d4f-44de-9fa9-df874bf7a3a6", "created_at": "2025-05-22T18:21:35.493456+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/af535c0a-1d4f-44de-9fa9-df874bf7a3a6", "rel": "self"}, {"href": "http://localhost/runbooks/af535c0a-1d4f-44de-9fa9-df874bf7a3a6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/af535c0a-1d4f-44de-9fa9-df874bf7a3a6 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-102a66ce-b0b2-40b8-9637-c42e1e377c8b X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.081837s] ... 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-9017c415-75b3-4376-9d44-33ba532e76f7 X-Openstack-Ironic-Api-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.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.141908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.070383s] ... 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/48724986-e773-4007-af0a-9e2df4f9d9f9 Openstack-Request-Id: req-a4796d99-d2dc-443e-957f-df4b58475a38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "48724986-e773-4007-af0a-9e2df4f9d9f9", "created_at": "2025-05-22T18:21:35.609922+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/48724986-e773-4007-af0a-9e2df4f9d9f9", "rel": "self"}, {"href": "http://localhost/volume/connectors/48724986-e773-4007-af0a-9e2df4f9d9f9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/48724986-e773-4007-af0a-9e2df4f9d9f9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad07965b-08db-4257-8ff0-29328e68b1ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "48724986-e773-4007-af0a-9e2df4f9d9f9", "created_at": "2025-05-22T18:21:35.609922+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/48724986-e773-4007-af0a-9e2df4f9d9f9", "rel": "self"}, {"href": "http://localhost/volume/connectors/48724986-e773-4007-af0a-9e2df4f9d9f9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.037820s] ... 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\": \"\"}"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.126495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.093110s] ... 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-469cf07b-6972-4cf8-8fd9-c5e65e8ae72d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_project_owned_runbook_public [0.234452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '253139e8-6747-4278-8b8e-d9839317d001', '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/253139e8-6747-4278-8b8e-d9839317d001 Openstack-Request-Id: req-d53bdbd8-6854-4bb4-b64d-96e11fecc70c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "253139e8-6747-4278-8b8e-d9839317d001", "created_at": "2025-05-22T18:21:35.687724+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/253139e8-6747-4278-8b8e-d9839317d001", "rel": "self"}, {"href": "http://localhost/runbooks/253139e8-6747-4278-8b8e-d9839317d001", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/253139e8-6747-4278-8b8e-d9839317d001 WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6ad50e4-0821-4b8f-ab08-c08b61db76d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "253139e8-6747-4278-8b8e-d9839317d001", "created_at": "2025-05-22T18:21:35.687724+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/253139e8-6747-4278-8b8e-d9839317d001", "rel": "self"}, {"href": "http://localhost/runbooks/253139e8-6747-4278-8b8e-d9839317d001", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.116233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.120680s] ... 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-de378cbb-cd20-4ff7-96bf-7ea9c539da34 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.056332s] ... 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-cb506a58-93d3-4378-9bc9-759b16e9f4c9 X-Openstack-Ironic-Api-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.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.128539s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.052257s] ... 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-45560f4d-f63f-461f-b575-1e2a0c65ecb0 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.053516s] ... 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-16e27201-466e-44c6-8c79-65bae4107dcf X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.682643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ebdf55d5-49d2-429f-9c18-8aa8434fccdc WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-55b3ca10-3b8c-436f-97bc-474d272fdc25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.089337s] ... 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-ac6d827d-bbc0-47ce-a620-6a1abbad3d6f 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-22T18:21:36.116302+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': '6f7f8a8b-4472-4e5b-a906-f9549ae5076e', '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-2689ac1d-bbe2-40fd-85a4-abbaa01a1ff1 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.134580s] ... 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-874f3251-011e-478c-b6f5-fce41f2b40e4 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-22T18:21:36.209847+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-0ebab454-de4b-45ce-9005-cc61b614c30e 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-22T18:21:36.209847+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned [0.290449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e23fdb0a-96d8-4a43-8913-ba5c7272fc04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "0b2f79b6-e9a7-4d72-b188-413fec267ad6", "created_at": "2025-05-22T18:21:36.244915+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/0b2f79b6-e9a7-4d72-b188-413fec267ad6", "rel": "self"}, {"href": "http://localhost/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6/ports", "rel": "self"}, {"href": "http://localhost/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6/states", "rel": "self"}, {"href": "http://localhost/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6/volume", "rel": "self"}, {"href": "http://localhost/nodes/0b2f79b6-e9a7-4d72-b188-413fec267ad6/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.145697s] ... 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-1caf6212-6a61-40e3-8fa5-92b3dc0b43fb 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-22T18:21:36.406126+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.106511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b66db857-8839-400c-aecb-96e2cda967ee 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": "0d01abef-0b36-4e82-9d78-c7025a479eca", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0d01abef-0b36-4e82-9d78-c7025a479eca", "rel": "self"}, {"href": "http://localhost/volume/targets/0d01abef-0b36-4e82-9d78-c7025a479eca", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "90e0b339-2449-44dd-b7a7-3db601a1e497", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/90e0b339-2449-44dd-b7a7-3db601a1e497", "rel": "self"}, {"href": "http://localhost/volume/targets/90e0b339-2449-44dd-b7a7-3db601a1e497", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ddbcf725-469b-4f47-bea2-513497a840ce", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/ddbcf725-469b-4f47-bea2-513497a840ce", "rel": "self"}, {"href": "http://localhost/volume/targets/ddbcf725-469b-4f47-bea2-513497a840ce", "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=ddbcf725-469b-4f47-bea2-513497a840ce"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_public_system_scope [0.810144s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/89266d92-3620-41ba-b31c-6c13544f3fc6 WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cdc69f12-b3cd-4d86-a50e-ee3759acada1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "89266d92-3620-41ba-b31c-6c13544f3fc6", "created_at": "2025-05-22T18:21:36.500505+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/89266d92-3620-41ba-b31c-6c13544f3fc6", "rel": "self"}, {"href": "http://localhost/runbooks/89266d92-3620-41ba-b31c-6c13544f3fc6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden [0.198976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7c96b023-f459-49e3-a3dc-366b8ed3dc99 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4601c1a6-d8f7-41d5-ac62-f959e0906131 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 \\\"7c96b023-f459-49e3-a3dc-366b8ed3dc99\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.105505s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab3d85f0-3a3b-4203-929e-9f1a82bdca26 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": "863bcd1c-e2f8-4f8d-93a7-f92b228f4eb3", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/863bcd1c-e2f8-4f8d-93a7-f92b228f4eb3", "rel": "self"}, {"href": "http://localhost/volume/targets/863bcd1c-e2f8-4f8d-93a7-f92b228f4eb3", "rel": "bookmark"}]}, {"uuid": "9eb052bc-d7bf-4dcd-a5aa-ef989a437e08", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/9eb052bc-d7bf-4dcd-a5aa-ef989a437e08", "rel": "self"}, {"href": "http://localhost/volume/targets/9eb052bc-d7bf-4dcd-a5aa-ef989a437e08", "rel": "bookmark"}]}, {"uuid": "ca7aaa43-5eb6-44dd-83f0-3383def950d9", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/ca7aaa43-5eb6-44dd-83f0-3383def950d9", "rel": "self"}, {"href": "http://localhost/volume/targets/ca7aaa43-5eb6-44dd-83f0-3383def950d9", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=ca7aaa43-5eb6-44dd-83f0-3383def950d9"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.079933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0f463a3-05d9-4117-ae65-0a312954f87e 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": "869c3e43-f6fb-4978-b6a5-8c4d4926c287", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/869c3e43-f6fb-4978-b6a5-8c4d4926c287", "rel": "self"}, {"href": "http://localhost/volume/targets/869c3e43-f6fb-4978-b6a5-8c4d4926c287", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "86c00806-7938-4c6a-9570-88a69bd2a6ae", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/86c00806-7938-4c6a-9570-88a69bd2a6ae", "rel": "self"}, {"href": "http://localhost/volume/targets/86c00806-7938-4c6a-9570-88a69bd2a6ae", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "fb688d12-e0d0-4ef4-83ea-d3a48ef6de52", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/fb688d12-e0d0-4ef4-83ea-d3a48ef6de52", "rel": "self"}, {"href": "http://localhost/volume/targets/fb688d12-e0d0-4ef4-83ea-d3a48ef6de52", "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=fb688d12-e0d0-4ef4-83ea-d3a48ef6de52"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.096521s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f6042ac4-d698-4bcb-8a9d-d869b14dc86d 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": "6beabcc3-cbcd-4e23-ad4d-338f1af55632", "created_at": "2025-05-22T18:21:36.810666+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/6beabcc3-cbcd-4e23-ad4d-338f1af55632", "rel": "self"}, {"href": "http://localhost/volume/targets/6beabcc3-cbcd-4e23-ad4d-338f1af55632", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "dae9ae93-1cb7-49e1-ae81-4327c25f8df7", "created_at": "2025-05-22T18:21:36.814203+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/dae9ae93-1cb7-49e1-ae81-4327c25f8df7", "rel": "self"}, {"href": "http://localhost/volume/targets/dae9ae93-1cb7-49e1-ae81-4327c25f8df7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ff492991-4fe6-4d0f-9542-280410f55329", "created_at": "2025-05-22T18:21:36.815047+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/ff492991-4fe6-4d0f-9542-280410f55329", "rel": "self"}, {"href": "http://localhost/volume/targets/ff492991-4fe6-4d0f-9542-280410f55329", "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=ff492991-4fe6-4d0f-9542-280410f55329"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_unset_public_system_scope [0.288861s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE2', 'uuid': 'e8493e58-804a-4d65-938a-cf1f48995e23', '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/e8493e58-804a-4d65-938a-cf1f48995e23 Openstack-Request-Id: req-80b27764-acbd-47dc-b34c-8acefa1f2da7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8493e58-804a-4d65-938a-cf1f48995e23", "created_at": "2025-05-22T18:21:36.783778+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e8493e58-804a-4d65-938a-cf1f48995e23", "rel": "self"}, {"href": "http://localhost/runbooks/e8493e58-804a-4d65-938a-cf1f48995e23", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/e8493e58-804a-4d65-938a-cf1f48995e23 WITH [{'path': '/public', 'value': False, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-edc3c963-a402-4bfe-989b-045b6a10f993 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8493e58-804a-4d65-938a-cf1f48995e23", "created_at": "2025-05-22T18:21:36.783778+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e8493e58-804a-4d65-938a-cf1f48995e23", "rel": "self"}, {"href": "http://localhost/runbooks/e8493e58-804a-4d65-938a-cf1f48995e23", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.053418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-275d7d87-e1c8-4312-ae8e-0e3b6098647c 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-22T18:21:36.868709+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.341780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c83b190e-cdef-45be-ac05-6514f6820485 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8abab903-4856-4a4d-9dab-45abc07e1f67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "c83b190e-cdef-45be-ac05-6514f6820485", "created_at": "2025-05-22T18:21:36.758836+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/c83b190e-cdef-45be-ac05-6514f6820485", "rel": "self"}, {"href": "http://localhost/nodes/c83b190e-cdef-45be-ac05-6514f6820485", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c83b190e-cdef-45be-ac05-6514f6820485/ports", "rel": "self"}, {"href": "http://localhost/nodes/c83b190e-cdef-45be-ac05-6514f6820485/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c83b190e-cdef-45be-ac05-6514f6820485/states", "rel": "self"}, {"href": "http://localhost/nodes/c83b190e-cdef-45be-ac05-6514f6820485/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c83b190e-cdef-45be-ac05-6514f6820485/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c83b190e-cdef-45be-ac05-6514f6820485/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c83b190e-cdef-45be-ac05-6514f6820485/volume", "rel": "self"}, {"href": "http://localhost/nodes/c83b190e-cdef-45be-ac05-6514f6820485/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [1.074940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id [0.197070s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/dd748c6a-8445-4c2d-8fb5-6f34e67bc853 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f3cc479-b94a-4013-bcd6-85ea2bc9f6b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "dd748c6a-8445-4c2d-8fb5-6f34e67bc853", "created_at": "2025-05-22T18:21:36.992259+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/dd748c6a-8445-4c2d-8fb5-6f34e67bc853", "rel": "self"}, {"href": "http://localhost/runbooks/dd748c6a-8445-4c2d-8fb5-6f34e67bc853", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.201803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cc061ea8-e802-452a-9b12-fd6847008834 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3095eda8-466c-4fad-8e3b-5bed3f561173 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.283915s] ... 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-c2c9b780-b40c-44c2-af4e-afede26664f0 X-Openstack-Ironic-Api-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.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.095105s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id_invalid_api_version [0.129200s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/399becab-d470-47d7-81d2-4a2f18c6e1a6 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_volume_target.TestListVolumeTargets.test_detail_and_fields [0.052928s] ... 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-fe24122f-eb10-4f72-9a9c-cf8f13cade37 X-Openstack-Ironic-Api-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_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.051870s] ... 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-062f5a49-8efa-48c2-807b-7a4db2524e7a 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-22T18:21:37.267453+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.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.151655s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.075434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a955f1d-a02f-44b7-85dd-81d4f121057d 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"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.053029s] ... 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_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.044970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-aa3ba81a-53bc-4b7b-920b-7f81c44e5d7d X-Openstack-Ironic-Api-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.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.134418s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name [0.282079s] ... 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-7cf6c527-774f-4469-a670-134c29529345 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7f6cdd86-fd14-43e5-90e4-81a306d49cd5", "created_at": "2025-05-22T18:21:37.364670+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7f6cdd86-fd14-43e5-90e4-81a306d49cd5", "rel": "self"}, {"href": "http://localhost/runbooks/7f6cdd86-fd14-43e5-90e4-81a306d49cd5", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.368921s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357 WITH [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa7ce77f-364c-475e-b187-32ceb3873eea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "d06264e7-8b96-46d3-ad7b-a4984a779357", "created_at": "2025-05-22T18:21:37.315012+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/d06264e7-8b96-46d3-ad7b-a4984a779357", "rel": "self"}, {"href": "http://localhost/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357/ports", "rel": "self"}, {"href": "http://localhost/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357/states", "rel": "self"}, {"href": "http://localhost/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357/volume", "rel": "self"}, {"href": "http://localhost/nodes/d06264e7-8b96-46d3-ad7b-a4984a779357/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.078261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-581ac055-749b-491c-aee6-9667c9354187 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.common.test_image_service.FileImageServiceTestCase.test_download_hard_link [0.129387s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.113371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9db31b46-7606-4f2f-ac04-bfc4805e15e4 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": "97f4c9fe-cf2c-40b6-ad6e-e95883244833", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/97f4c9fe-cf2c-40b6-ad6e-e95883244833", "rel": "self"}, {"href": "http://localhost/volume/targets/97f4c9fe-cf2c-40b6-ad6e-e95883244833", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ad2b6429-9ece-401d-9d3a-f51de956c92b", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/ad2b6429-9ece-401d-9d3a-f51de956c92b", "rel": "self"}, {"href": "http://localhost/volume/targets/ad2b6429-9ece-401d-9d3a-f51de956c92b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "7d4ebb52-b0e7-4ffb-aa23-e32dbad7646a", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/7d4ebb52-b0e7-4ffb-aa23-e32dbad7646a", "rel": "self"}, {"href": "http://localhost/volume/targets/7d4ebb52-b0e7-4ffb-aa23-e32dbad7646a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name_old_api_version [0.145981s] ... 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.common.test_image_service.FileImageServiceTestCase.test_download_symlink [0.109881s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.114286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-841ded3e-0f8e-4e0a-bd6a-e82dc99accbb 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": "df0fcaaa-2088-4c41-a204-c56ce2427714", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/df0fcaaa-2088-4c41-a204-c56ce2427714", "rel": "self"}, {"href": "http://localhost/volume/targets/df0fcaaa-2088-4c41-a204-c56ce2427714", "rel": "bookmark"}]}, {"uuid": "68d2d9c2-709e-4ab5-a42c-83abad1f9148", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/68d2d9c2-709e-4ab5-a42c-83abad1f9148", "rel": "self"}, {"href": "http://localhost/volume/targets/68d2d9c2-709e-4ab5-a42c-83abad1f9148", "rel": "bookmark"}]}, {"uuid": "7463aa58-731a-4d9c-ab02-f2fb2600db83", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/7463aa58-731a-4d9c-ab02-f2fb2600db83", "rel": "self"}, {"href": "http://localhost/volume/targets/7463aa58-731a-4d9c-ab02-f2fb2600db83", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show [0.083286s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.063135s] ... 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-320ecae0-d1f6-482f-b52f-899b51346dc7 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/0139bc89-9925-47a6-8904-311fa1b9680a", "rel": "self"}, {"href": "http://localhost/volume/targets/0139bc89-9925-47a6-8904-311fa1b9680a", "rel": "bookmark"}]}, {"boot_index": 1, "links": [{"href": "http://localhost/v1/volume/targets/45f367af-9316-4b64-b9b3-c079913a0acb", "rel": "self"}, {"href": "http://localhost/volume/targets/45f367af-9316-4b64-b9b3-c079913a0acb", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=45f367af-9316-4b64-b9b3-c079913a0acb"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_name_standard_trait [0.194789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/4754677f-6df7-4656-ad06-501a7440e6f1 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f797b74b-af4c-40de-97c1-2dbf7390cce0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4754677f-6df7-4656-ad06-501a7440e6f1", "created_at": "2025-05-22T18:21:37.768354+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4754677f-6df7-4656-ad06-501a7440e6f1", "rel": "self"}, {"href": "http://localhost/runbooks/4754677f-6df7-4656-ad06-501a7440e6f1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href [0.080424s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.079684s] ... 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-fdfff5c8-8e0f-46d0-8c5b-fd504b7bfb7b X-Openstack-Ironic-Api-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.common.test_image_service.FileImageServiceTestCase.test_validate_href_blocked_path [0.078260s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.043425s] ... 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-7123d235-c924-4542-aac3-2404df55e006 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-22T18:21:37.944842+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove [0.473412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9 WITH [{'op': 'remove', 'path': '/protected'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72f19ec2-29aa-4024-9be5-2ff508d4073f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "86a3fec0-5551-4598-9c32-dfeda136b0f9", "created_at": "2025-05-22T18:21:37.697943+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/86a3fec0-5551-4598-9c32-dfeda136b0f9", "rel": "self"}, {"href": "http://localhost/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9/ports", "rel": "self"}, {"href": "http://localhost/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9/states", "rel": "self"}, {"href": "http://localhost/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9/volume", "rel": "self"}, {"href": "http://localhost/nodes/86a3fec0-5551-4598-9c32-dfeda136b0f9/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_not_found [0.153343s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b49bc44d-7a69-4911-b0a1-f38b1709d8bf WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e49d50c1-036c-46a3-a98c-d6bd3574e5fd X-Openstack-Ironic-Api-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 b49bc44d-7a69-4911-b0a1-f38b1709d8bf could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.062027s] ... 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-61443266-547b-4e47-a886-c1701a2f1223 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"}]} {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_empty_allowlist [0.091226s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.088474s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_in_allowlist [0.080142s] ... ok {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_not_in_allowlist [0.083842s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_project_scope [0.185434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/f6c3f3af-913f-4eb1-8a27-f7ccbdfe87a4 WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b164a7ab-4c8b-4704-93b0-dfb536f9044e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f6c3f3af-913f-4eb1-8a27-f7ccbdfe87a4", "created_at": "2025-05-22T18:21:38.099712+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f6c3f3af-913f-4eb1-8a27-f7ccbdfe87a4", "rel": "self"}, {"href": "http://localhost/runbooks/f6c3f3af-913f-4eb1-8a27-f7ccbdfe87a4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.064434s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.164754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/aa40c1a9-f9ca-42b4-8c83-37f7c1225f34 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4871316-67e4-4b3a-81cf-026fa66ef057 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "aa40c1a9-f9ca-42b4-8c83-37f7c1225f34", "created_at": "2025-05-22T18:21:38.194774+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/aa40c1a9-f9ca-42b4-8c83-37f7c1225f34", "rel": "self"}, {"href": "http://localhost/volume/targets/aa40c1a9-f9ca-42b4-8c83-37f7c1225f34", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/aa40c1a9-f9ca-42b4-8c83-37f7c1225f34 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f2618c1-eb7c-454f-9527-511fba00bd8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "aa40c1a9-f9ca-42b4-8c83-37f7c1225f34", "created_at": "2025-05-22T18:21:38.194774+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/aa40c1a9-f9ca-42b4-8c83-37f7c1225f34", "rel": "self"}, {"href": "http://localhost/volume/targets/aa40c1a9-f9ca-42b4-8c83-37f7c1225f34", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/targets/aa40c1a9-f9ca-42b4-8c83-37f7c1225f34 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-37109845-966a-43ca-a130-1987a8d8bd93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "aa40c1a9-f9ca-42b4-8c83-37f7c1225f34", "created_at": "2025-05-22T18:21:38.194774+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/aa40c1a9-f9ca-42b4-8c83-37f7c1225f34", "rel": "self"}, {"href": "http://localhost/volume/targets/aa40c1a9-f9ca-42b4-8c83-37f7c1225f34", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string [0.296422s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0 WITH [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5841ca6f-f05a-415e-9113-251e29d6b741 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "7d222c7d-624c-4e33-ae29-d4669f8d2ab0", "created_at": "2025-05-22T18:21:38.137050+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/7d222c7d-624c-4e33-ae29-d4669f8d2ab0", "rel": "self"}, {"href": "http://localhost/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0/states", "rel": "self"}, {"href": "http://localhost/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d222c7d-624c-4e33-ae29-d4669f8d2ab0/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror [0.097367s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.140000s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c25eb06-8379-4ad9-a8dc-39c68aee77d0 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": "23e70dd5-7f09-4580-85e4-7040f72f8d4c", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/23e70dd5-7f09-4580-85e4-7040f72f8d4c", "rel": "self"}, {"href": "http://localhost/volume/targets/23e70dd5-7f09-4580-85e4-7040f72f8d4c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8d343b63-7fac-42bf-bdc3-835baceb9450", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8d343b63-7fac-42bf-bdc3-835baceb9450", "rel": "self"}, {"href": "http://localhost/volume/targets/8d343b63-7fac-42bf-bdc3-835baceb9450", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "52a389f9-0ced-4395-ac70-bd824cd38fc3", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/52a389f9-0ced-4395-ac70-bd824cd38fc3", "rel": "self"}, {"href": "http://localhost/volume/targets/52a389f9-0ced-4395-ac70-bd824cd38fc3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "047ed24e-c047-4b13-b6a7-2efb204d564f", "boot_index": 3, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/047ed24e-c047-4b13-b6a7-2efb204d564f", "rel": "self"}, {"href": "http://localhost/volume/targets/047ed24e-c047-4b13-b6a7-2efb204d564f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "49a972cd-77f2-4d2d-93a8-ac8e5c0217c3", "boot_index": 4, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/49a972cd-77f2-4d2d-93a8-ac8e5c0217c3", "rel": "self"}, {"href": "http://localhost/volume/targets/49a972cd-77f2-4d2d-93a8-ac8e5c0217c3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_system_scope [0.218909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/6a6fc899-fd42-446c-8731-69fd5ca51098 WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bcf25154-9871-4fbf-9193-b44a3e06254e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6a6fc899-fd42-446c-8731-69fd5ca51098", "created_at": "2025-05-22T18:21:38.304962+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6a6fc899-fd42-446c-8731-69fd5ca51098", "rel": "self"}, {"href": "http://localhost/runbooks/6a6fc899-fd42-446c-8731-69fd5ca51098", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror [0.133363s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.103303s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dcb23f75-f3c2-47f0-aca6-88244d0a7a83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid [0.230718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/b97281f6-78af-4201-95bc-c857714d94b7 WITH [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9520d9e2-508c-490e-95d9-72f146ccda4e 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}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy [0.114006s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.071499s] ... 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\": \"\"}"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror [0.130094s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.068380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6d9eae63-de90-4503-92ad-659a721105de 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": "033b76cc-38ca-4c1b-a0bb-fe783ada1b4a", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/033b76cc-38ca-4c1b-a0bb-fe783ada1b4a", "rel": "self"}, {"href": "http://localhost/volume/targets/033b76cc-38ca-4c1b-a0bb-fe783ada1b4a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "4319f251-25c6-4dbf-ad71-e49abfb355d9", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/4319f251-25c6-4dbf-ad71-e49abfb355d9", "rel": "self"}, {"href": "http://localhost/volume/targets/4319f251-25c6-4dbf-ad71-e49abfb355d9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5aeec4fe-9db4-4e4f-8ca5-1d70f56109bf", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5aeec4fe-9db4-4e4f-8ca5-1d70f56109bf", "rel": "self"}, {"href": "http://localhost/volume/targets/5aeec4fe-9db4-4e4f-8ca5-1d70f56109bf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden [0.132938s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.053985s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d98778a-3b03-4e24-99fb-c7ef589b170f X-Openstack-Ironic-Api-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-b8a87028-2785-48c7-bf05-ef428d1bc47d X-Openstack-Ironic-Api-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-e46c8ef2-93c8-472e-b8f0-0ad234cef663 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror [0.116728s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.282538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e 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-38bb6a46-8926-461c-8979-968152c8e7e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "2c68757f-3f63-4744-a1f6-e00a9ae8856e", "created_at": "2025-05-22T18:21:38.631628+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/2c68757f-3f63-4744-a1f6-e00a9ae8856e", "rel": "self"}, {"href": "http://localhost/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e/states", "rel": "self"}, {"href": "http://localhost/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c68757f-3f63-4744-a1f6-e00a9ae8856e/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_logical [0.138836s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout [0.107597s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme [0.094000s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_physical [0.117563s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false [0.081262s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid [0.117368s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_failed [0.076802s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes [0.319525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ada39f4d-9731-4068-925c-5133e2ae8797 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_resource_class [0.375594s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f9e9ff69-e60d-49fc-8b43-875efa0e74e0 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3482e5e-01af-4a41-bfbd-ed71336ea2df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "f9e9ff69-e60d-49fc-8b43-875efa0e74e0", "created_at": "2025-05-22T18:21:38.976966+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/f9e9ff69-e60d-49fc-8b43-875efa0e74e0", "rel": "self"}, {"href": "http://localhost/nodes/f9e9ff69-e60d-49fc-8b43-875efa0e74e0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f9e9ff69-e60d-49fc-8b43-875efa0e74e0/ports", "rel": "self"}, {"href": "http://localhost/nodes/f9e9ff69-e60d-49fc-8b43-875efa0e74e0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f9e9ff69-e60d-49fc-8b43-875efa0e74e0/states", "rel": "self"}, {"href": "http://localhost/nodes/f9e9ff69-e60d-49fc-8b43-875efa0e74e0/states", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged [0.114541s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_sucess [0.099486s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path [0.113620s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok [0.150762s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes [0.222033s] ... 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-405ce572-1cb7-4570-80e2-931cee7ef53e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true [0.099117s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.278289s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/08245900-a680-4721-be1a-a73e3af157b7 WITH [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-783e7dc7-a697-4ddf-9431-7e6750ff9d27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "08245900-a680-4721-be1a-a73e3af157b7", "created_at": "2025-05-22T18:21:39.310504+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/08245900-a680-4721-be1a-a73e3af157b7", "rel": "self"}, {"href": "http://localhost/nodes/08245900-a680-4721-be1a-a73e3af157b7", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/08245900-a680-4721-be1a-a73e3af157b7/ports", "rel": "self"}, {"href": "http://localhost/nodes/08245900-a680-4721-be1a-a73e3af157b7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/08245900-a680-4721-be1a-a73e3af157b7/states", "rel": "self"}, {"href": "http://localhost/nodes/08245900-a680-4721-be1a-a73e3af157b7/states", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_set_both_switches [0.134913s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_service_nodes_cannot_post_nodes [0.125550s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f05b68ba-6d57-4bd2-8372-e3bc583fa0fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror [0.093226s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type [0.106554s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_none [0.069816s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_service_nodes_can_post_nodes [0.143453s] ... 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-1486dc13-efa6-4226-93de-7a7e7f8a6b5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_success [0.064732s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.203626s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/199fb5c5-19d1-4d9c-a516-b808ec4c9f45 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2c76ec7f-a8d3-4f1c-870b-a90e782e19b4 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_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id [0.140556s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_handles_exceptions [0.082662s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_owner_manager_cannot_post_nodes [0.155174s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b15aa7c-7b39-45ba-842d-e221430dbef2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_image_service.HttpImageServiceTestCase.test_get_success [0.075659s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value [0.121059s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success_verify_false [0.074023s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.244939s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/ef6dbe9a-8ddc-4d60-85d6-87fd9209eead WITH [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-85e6722a-46aa-491c-9ce6-491393d0dc89 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}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key [0.093008s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.099150s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_admin_cannot_post_nodes [0.223628s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-03afdc98-82af-450b-9833-1a536424ea35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory [0.154983s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed [0.110108s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired [0.250921s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-46f2b366-c3cf-48c9-a08c-bb1c81c00616 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "8d50b981-880c-4d67-9279-b0470b30cfd7", "created_at": "2025-05-22T18:21:40.026015+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/8d50b981-880c-4d67-9279-b0470b30cfd7", "rel": "self"}, {"href": "http://localhost/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7/ports", "rel": "self"}, {"href": "http://localhost/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7/states", "rel": "self"}, {"href": "http://localhost/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7/volume", "rel": "self"}, {"href": "http://localhost/nodes/8d50b981-880c-4d67-9279-b0470b30cfd7/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled [0.086708s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_admin_can_post_nodes [0.205256s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-758f14ad-a475-4690-9c9c-89567d94cb68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key [0.140171s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.100009s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api [0.165115s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cb10d91a-29cc-4dbc-ac25-0b50c44fa3be WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-93af9df2-2efc-47ff-9e83-b07c46d0aa54 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.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.076545s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id [0.129422s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_lessee_manager_cannot_post_nodes [0.208550s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-070f9a8a-6120-45a9-9b12-45f35a15491e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.101019s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.140960s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout [0.065140s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.083241s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason [0.278187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab WITH [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-791d92ae-950e-4428-937a-b815f48987e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "3a2f2a4e-d579-4d04-8268-f33b4874a3ab", "created_at": "2025-05-22T18:21:40.460095+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/3a2f2a4e-d579-4d04-8268-f33b4874a3ab", "rel": "self"}, {"href": "http://localhost/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab/ports", "rel": "self"}, {"href": "http://localhost/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab/states", "rel": "self"}, {"href": "http://localhost/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab/volume", "rel": "self"}, {"href": "http://localhost/nodes/3a2f2a4e-d579-4d04-8268-f33b4874a3ab/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory [0.131745s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme [0.108787s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_lessee_manager_can_post_nodes [0.350690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a3f4ecb9-71cf-42f8-a80f-28cb78c8fe1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.162062s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden [0.106675s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional [0.087143s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected [0.095810s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove [0.320189s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e WITH [{'op': 'remove', 'path': '/retired'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4e399fdc-fbbf-4eb4-a27c-2f6c4279162a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "e8774eb0-6e9b-4b80-b637-04abbb98a55e", "created_at": "2025-05-22T18:21:40.798159+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/e8774eb0-6e9b-4b80-b637-04abbb98a55e", "rel": "self"}, {"href": "http://localhost/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e/states", "rel": "self"}, {"href": "http://localhost/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8774eb0-6e9b-4b80-b637-04abbb98a55e/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.094940s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_invalid_basic_auth [0.107358s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.103495s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_third_party_admin_cannot_post_nodes [0.344669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-caeaca3b-5358-4026-b7f7-c2fc5b8365ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_valid_basic_auth [0.102008s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.061679s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error [0.082352s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.062042s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason [0.321947s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd 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-7de65843-3a2b-41ab-bf30-0addfd95c584 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd", "created_at": "2025-05-22T18:21:41.151690+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/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd", "rel": "self"}, {"href": "http://localhost/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd/ports", "rel": "self"}, {"href": "http://localhost/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd/states", "rel": "self"}, {"href": "http://localhost/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd/volume", "rel": "self"}, {"href": "http://localhost/nodes/fd7cd52b-6e78-43ed-b2f1-1001ed7d8fcd/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error [0.064311s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.167597s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2bef6bab-62d8-4884-b6a2-0d2c5d6ea770 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": "856d4e9f-8326-44aa-a766-70e6a20a0a9c", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/856d4e9f-8326-44aa-a766-70e6a20a0a9c", "rel": "self"}, {"href": "http://localhost/volume/connectors/856d4e9f-8326-44aa-a766-70e6a20a0a9c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "daf94d93-d421-42d0-9958-fcb1218bcb26", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/daf94d93-d421-42d0-9958-fcb1218bcb26", "rel": "self"}, {"href": "http://localhost/volume/connectors/daf94d93-d421-42d0-9958-fcb1218bcb26", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "cca50d98-5494-449d-a946-2235dc423762", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/cca50d98-5494-449d-a946-2235dc423762", "rel": "self"}, {"href": "http://localhost/volume/connectors/cca50d98-5494-449d-a946-2235dc423762", "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=cca50d98-5494-449d-a946-2235dc423762"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false [0.112078s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error [0.095805s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.217226s] ... 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-42a06cd4-d584-4731-a9a2-4c2fbb2283e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: Additional properties are not allowed ('power_state' was unexpected)\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_third_party_admin_can_post_nodes [0.403196s] ... 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-5853c490-4408-4e6a-802c-920a73f7b54a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.160411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2914a986-18c7-4f96-9891-7e1d4dcfc58b 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": "3e246d96-603e-4673-ba21-b08bb6905060", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/3e246d96-603e-4673-ba21-b08bb6905060", "rel": "self"}, {"href": "http://localhost/volume/connectors/3e246d96-603e-4673-ba21-b08bb6905060", "rel": "bookmark"}]}, {"uuid": "e17936f8-1c96-4952-8b57-233e2aa9d87c", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/e17936f8-1c96-4952-8b57-233e2aa9d87c", "rel": "self"}, {"href": "http://localhost/volume/connectors/e17936f8-1c96-4952-8b57-233e2aa9d87c", "rel": "bookmark"}]}, {"uuid": "8c5c39d7-6445-4be0-8d9b-0369a369fd5a", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/8c5c39d7-6445-4be0-8d9b-0369a369fd5a", "rel": "self"}, {"href": "http://localhost/volume/connectors/8c5c39d7-6445-4be0-8d9b-0369a369fd5a", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=8c5c39d7-6445-4be0-8d9b-0369a369fd5a"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error [0.095063s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true [0.069481s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.153038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-945a752c-4e27-4fcd-9161-8ca2f35b3898 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": "de835a13-9c54-46be-9de5-1c5091446ee1", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/de835a13-9c54-46be-9de5-1c5091446ee1", "rel": "self"}, {"href": "http://localhost/volume/connectors/de835a13-9c54-46be-9de5-1c5091446ee1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "3cd82092-48d0-46d3-9f89-95a3a707ad41", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3cd82092-48d0-46d3-9f89-95a3a707ad41", "rel": "self"}, {"href": "http://localhost/volume/connectors/3cd82092-48d0-46d3-9f89-95a3a707ad41", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ae39edda-d08d-4287-85c9-567d0c891ab6", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ae39edda-d08d-4287-85c9-567d0c891ab6", "rel": "self"}, {"href": "http://localhost/volume/connectors/ae39edda-d08d-4287-85c9-567d0c891ab6", "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=ae39edda-d08d-4287-85c9-567d0c891ab6"} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error [0.072162s] ... ok {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path [0.080322s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.126253s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-435ab763-c55f-4ad3-898f-c7b62df63151 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": "80c83307-aeee-46f2-8251-293cb19d4bf8", "created_at": "2025-05-22T18:21:41.805768+00:00", "updated_at": null, "connector_id": "test-connector_id-0", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/80c83307-aeee-46f2-8251-293cb19d4bf8", "rel": "self"}, {"href": "http://localhost/volume/connectors/80c83307-aeee-46f2-8251-293cb19d4bf8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e522267c-76fb-4b58-af07-013860f850a1", "created_at": "2025-05-22T18:21:41.806663+00:00", "updated_at": null, "connector_id": "test-connector_id-1", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e522267c-76fb-4b58-af07-013860f850a1", "rel": "self"}, {"href": "http://localhost/volume/connectors/e522267c-76fb-4b58-af07-013860f850a1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a851758d-9ce5-45ed-a396-a7ed7452bbbf", "created_at": "2025-05-22T18:21:41.807953+00:00", "updated_at": null, "connector_id": "test-connector_id-2", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a851758d-9ce5-45ed-a396-a7ed7452bbbf", "rel": "self"}, {"href": "http://localhost/volume/connectors/a851758d-9ce5-45ed-a396-a7ed7452bbbf", "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=a851758d-9ce5-45ed-a396-a7ed7452bbbf"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.336515s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/05735eac-554c-4627-9124-53e5aaf16217 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3d5415ac-0b5d-4f83-979d-851b2ae9febc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "05735eac-554c-4627-9124-53e5aaf16217", "created_at": "2025-05-22T18:21:41.656666+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/05735eac-554c-4627-9124-53e5aaf16217", "rel": "self"}, {"href": "http://localhost/nodes/05735eac-554c-4627-9124-53e5aaf16217", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/05735eac-554c-4627-9124-53e5aaf16217/ports", "rel": "self"}, {"href": "http://localhost/nodes/05735eac-554c-4627-9124-53e5aaf16217/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05735eac-554c-4627-9124-53e5aaf16217/states", "rel": "self"}, {"href": "http://localhost/nodes/05735eac-554c-4627-9124-53e5aaf16217/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05735eac-554c-4627-9124-53e5aaf16217/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05735eac-554c-4627-9124-53e5aaf16217/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05735eac-554c-4627-9124-53e5aaf16217/volume", "rel": "self"}, {"href": "http://localhost/nodes/05735eac-554c-4627-9124-53e5aaf16217/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_member_cannot_post_nodes [0.347636s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8285e5c5-d350-4b63-a75f-6cdb5d1c42e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format [0.063376s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.091435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48f17458-8450-4858-9f68-a2e5c5faddc3 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-22T18:21:41.920948+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_password [0.072116s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.165580s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fd921507-d770-43d9-ac84-65a2544de7eb WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d8734290-1c7a-479b-ab5a-0932e1630cc4 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_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.080797s] ... 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-fae665fc-4ff3-4c3a-9e49-dd4725ae72a9 X-Openstack-Ironic-Api-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.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_user [0.068811s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.071685s] ... 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-fb4fb91a-c929-451d-87db-cfb548ab9948 X-Openstack-Ironic-Api-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.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_password [0.083737s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.053379s] ... 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-475f8783-059b-4025-a8d8-9a2e17b12a73 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-22T18:21:42.141629+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_user [0.064462s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false [0.040212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09b53793-3f28-41a9-a99d-e8d29e4ec3e8 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits [0.201759s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fdae8f06-5c81-4ae7-846c-8f144239352f WITH [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f666b986-cbee-4806-a0f9-a139883c5e11 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_reader_cannot_post_reader [0.353752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dd9db0da-eca4-452e-894a-c4de9dfae396 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.087218s] ... 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\": \"\"}"} {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.098502s] ... ok {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.076561s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.084733s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cb1f3918-99b5-4834-b0f4-8333a47e0119 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.056626s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c69a5edb-861b-483e-95b2-adad543ca515 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.076340s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_admin_can_get_node [0.202539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48408009-2d20-4cc1-9c93-21417290e680 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": "babcd26e-4ea2-4a99-9eaa-01b0a6377b30", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.251170s] ... 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-26e07a50-b71c-4693-9cb1-d77fbeb1eaa5 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-22T18:21:42.305500+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.063281s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.128254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a673fb31-0f07-48b2-a10b-d14d7447abe4 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": "0bcce479-4b27-459c-ae3c-b1a007d28542", "connector_id": "test-value-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0bcce479-4b27-459c-ae3c-b1a007d28542", "rel": "self"}, {"href": "http://localhost/volume/connectors/0bcce479-4b27-459c-ae3c-b1a007d28542", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "75dc9364-ae6a-41ad-b877-00a8bf10a15c", "connector_id": "test-value-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/75dc9364-ae6a-41ad-b877-00a8bf10a15c", "rel": "self"}, {"href": "http://localhost/volume/connectors/75dc9364-ae6a-41ad-b877-00a8bf10a15c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "3327b00a-4998-4855-8b77-bdc387760268", "connector_id": "test-value-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3327b00a-4998-4855-8b77-bdc387760268", "rel": "self"}, {"href": "http://localhost/volume/connectors/3327b00a-4998-4855-8b77-bdc387760268", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.082081s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.119772s] ... 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-ea90f47f-ffad-42d0-a773-7235bac260e0 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.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_manager_can_get_node [0.197737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9a560b7-efe3-4635-86e5-ffef1912d212 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": "c0a5cba1-6c0d-44df-909d-d209ffaa181d", "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.ServiceGetterTestCase.test_get_image_service_auth_override [0.073510s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.115849s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dedb26e6-b71d-4f07-a545-aa91fb87266f 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": "5dab8ddb-a7b5-4a9c-8b76-8d16b82d1fdb", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/5dab8ddb-a7b5-4a9c-8b76-8d16b82d1fdb", "rel": "self"}, {"href": "http://localhost/volume/connectors/5dab8ddb-a7b5-4a9c-8b76-8d16b82d1fdb", "rel": "bookmark"}]}, {"uuid": "c1b82109-633c-41d7-8526-500966d9eef6", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/c1b82109-633c-41d7-8526-500966d9eef6", "rel": "self"}, {"href": "http://localhost/volume/connectors/c1b82109-633c-41d7-8526-500966d9eef6", "rel": "bookmark"}]}, {"uuid": "24d08670-6832-441d-8f3a-11e2842561c6", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/24d08670-6832-441d-8f3a-11e2842561c6", "rel": "self"}, {"href": "http://localhost/volume/connectors/24d08670-6832-441d-8f3a-11e2842561c6", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_data [0.086441s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.136440s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b3876021-8d4d-4aed-925d-421197985f56 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_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.120378s] ... 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-1c4316f0-e020-4931-a49a-abd535e2b9aa 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/5d4bd8a0-e42e-468c-a346-169cc2b00573", "rel": "self"}, {"href": "http://localhost/volume/connectors/5d4bd8a0-e42e-468c-a346-169cc2b00573", "rel": "bookmark"}]}, {"connector_id": "test-connector_id-1", "links": [{"href": "http://localhost/v1/volume/connectors/a626f648-592c-4da6-9cdc-41ef0f7b6997", "rel": "self"}, {"href": "http://localhost/volume/connectors/a626f648-592c-4da6-9cdc-41ef0f7b6997", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=a626f648-592c-4da6-9cdc-41ef0f7b6997"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_owner_member_can_get_node [0.180937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-98eb69b2-b030-45a0-bd0d-728a57ab4c64 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": "622eff60-159f-4035-a141-a077dd9a5eea", "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.ServiceGetterTestCase.test_get_image_service_auth_override_no_user_auth [0.111188s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.076424s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.128551s] ... 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-6650d02f-1f56-4fa9-9bda-e994c3b298f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.076582s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.102043s] ... 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-0d1d58eb-8bff-485e-abc1-b88753a2cff1 X-Openstack-Ironic-Api-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.common.test_image_service.ServiceGetterTestCase.test_get_image_service_oci_url [0.076135s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.129066s] ... 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-07cc45f3-f2dc-434a-ab92-d2596cf8e57c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_owner_reader_can_get_node [0.190537s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed99016b-2ef0-4461-8827-5922b2678ffc 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": "14bd8aa5-8bb2-458e-bb7e-8e4ca7ab649a", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.102219s] ... 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-d771e8e7-1e2e-4392-8785-f7c39b33e6f9 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-22T18:21:43.032577+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_is_container_registry_url [0.077884s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.084513s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.150991s] ... 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-cb4758cd-6008-4095-bc41-de7344d6187e 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.TestTraits.test_add_single_trait_rejects_bad_trait [0.127195s] ... 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-bee0ecb6-6404-4af1-9e90-9c862c175c9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'bad_trait' is not valid under any of the given schemas. Possible root cause: 'bad_trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_admin_can_get_node [0.242249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae1a6207-bebd-4693-832a-10ce5aa916a1 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": "d9b43e89-e6ad-4553-9adf-6d7453fbd6de", "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_inspection_rule.TestInterpolation.test_variable_interpolation [0.199255s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestShallowMask.test_get_method_masked [0.097849s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.161573s] ... 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-f8880440-55ac-44b7-87fc-72e6b9724940 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}"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.190698s] ... 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\": \"\"}"} {2} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_getitem_masked [0.106010s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_manager_can_get_node [0.283292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0be569c3-84ee-464e-a813-5c2186017df1 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": "3b042af0-b7d9-4c6f-afa8-c513bb579d76", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.171095s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-fbbc1c92-e10a-441d-b65d-6a898e35318c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_getitem_not_masked [0.108931s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.228552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/5133500b-b0a8-46db-9e7e-00f2bbf99bef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-afe80f23-6b89-4fe1-8b40-e941fe4a8de5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5133500b-b0a8-46db-9e7e-00f2bbf99bef", "created_at": "2025-05-22T18:21:43.553770+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/5133500b-b0a8-46db-9e7e-00f2bbf99bef", "rel": "self"}, {"href": "http://localhost/volume/connectors/5133500b-b0a8-46db-9e7e-00f2bbf99bef", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/5133500b-b0a8-46db-9e7e-00f2bbf99bef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53ffda5c-9fae-4259-a502-9526dae4e46d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5133500b-b0a8-46db-9e7e-00f2bbf99bef", "created_at": "2025-05-22T18:21:43.553770+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/5133500b-b0a8-46db-9e7e-00f2bbf99bef", "rel": "self"}, {"href": "http://localhost/volume/connectors/5133500b-b0a8-46db-9e7e-00f2bbf99bef", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/connectors/5133500b-b0a8-46db-9e7e-00f2bbf99bef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aae96357-59d7-4b01-a10c-b932d40b70e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5133500b-b0a8-46db-9e7e-00f2bbf99bef", "created_at": "2025-05-22T18:21:43.553770+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/5133500b-b0a8-46db-9e7e-00f2bbf99bef", "rel": "self"}, {"href": "http://localhost/volume/connectors/5133500b-b0a8-46db-9e7e-00f2bbf99bef", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.094100s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9e52c83-774a-470d-b22d-4976a55f5d1b 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": "d07e4d8e-0334-4121-a20f-8425c52e8d3c", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d07e4d8e-0334-4121-a20f-8425c52e8d3c", "rel": "self"}, {"href": "http://localhost/volume/connectors/d07e4d8e-0334-4121-a20f-8425c52e8d3c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "cf85925d-39aa-4dec-9c1d-20212b5950d2", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/cf85925d-39aa-4dec-9c1d-20212b5950d2", "rel": "self"}, {"href": "http://localhost/volume/connectors/cf85925d-39aa-4dec-9c1d-20212b5950d2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "baf2a8bb-9391-47d8-8168-b94155e6912e", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/baf2a8bb-9391-47d8-8168-b94155e6912e", "rel": "self"}, {"href": "http://localhost/volume/connectors/baf2a8bb-9391-47d8-8168-b94155e6912e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9b8ed8fe-438e-41ff-ac3e-01b8d1578e1c", "connector_id": "test-connector_id-3", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9b8ed8fe-438e-41ff-ac3e-01b8d1578e1c", "rel": "self"}, {"href": "http://localhost/volume/connectors/9b8ed8fe-438e-41ff-ac3e-01b8d1578e1c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "29772869-0946-497c-a62e-bbfc59cad205", "connector_id": "test-connector_id-4", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/29772869-0946-497c-a62e-bbfc59cad205", "rel": "self"}, {"href": "http://localhost/volume/connectors/29772869-0946-497c-a62e-bbfc59cad205", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.149443s] ... 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-4c9d0e50-286e-4e7f-b041-aab81da62e11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_items_masked [0.129190s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one [0.065535s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1999f6f-03f8-401c-be45-852faf278493 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.033606s] ... 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\": \"\"}"} {2} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_list_masking [0.137019s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_lessee_member_can_get_node [0.338283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d56d7422-8f06-4e76-a520-044229e6bb83 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": "b1f6b1db-27af-4102-9f46-8ffc787e23ca", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.262242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-ced14a69-d595-4912-8ae6-0ea96a1ec00e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {2} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_modifying_dict [0.129258s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.275971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62f66477-febf-4da3-b647-24bcdaa33f6a 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": "5fb1f2d4-c322-4586-a85f-551aefb8bc00", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/5fb1f2d4-c322-4586-a85f-551aefb8bc00", "rel": "self"}, {"href": "http://localhost/volume/connectors/5fb1f2d4-c322-4586-a85f-551aefb8bc00", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c4f342df-f6c8-447e-98f9-bb1831c7315f", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c4f342df-f6c8-447e-98f9-bb1831c7315f", "rel": "self"}, {"href": "http://localhost/volume/connectors/c4f342df-f6c8-447e-98f9-bb1831c7315f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c8cf14fc-b3b8-4fd9-93b5-cfec6d648ad3", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c8cf14fc-b3b8-4fd9-93b5-cfec6d648ad3", "rel": "self"}, {"href": "http://localhost/volume/connectors/c8cf14fc-b3b8-4fd9-93b5-cfec6d648ad3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.070626s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c5c66360-262c-4333-8711-84fcb33b1925 X-Openstack-Ironic-Api-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-f10e5c25-cbf7-4d7c-97bc-21de48dc431b X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.155068s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 204 No Content Openstack-Request-Id: req-8b89ff80-22e6-4c3e-9221-febaf7779599 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.test_acl.TestRBACProjectScoped.test_project_scoped_022_lessee_reader_can_get_node [0.278198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd65d929-7d86-4bf2-bd98-089cff7719c3 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": "12023925-3cde-4bf1-8810-a523a785e8c2", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values ... SKIPPED: For value storage {3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node [0.056221s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/a3313bfa-fe1d-42d6-aa57-f38bb1833e4e WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b1d5f203-4863-4b20-8e3c-65f56dbc0a11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node a3313bfa-fe1d-42d6-aa57-f38bb1833e4e could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node [0.047946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/614efde1-fc90-4259-98ec-0a1da2c65bc8 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c4c20a44-48b3-4ae8-974d-e7e2812cf55a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 614efde1-fc90-4259-98ec-0a1da2c65bc8 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.162302s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-5cb82a8d-4336-4476-b3d5-822552d61e05 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.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node [0.057257s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/f53d310d-09bb-41ac-9fbd-278da041a11a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2f04feb2-20a3-4dd4-8179-a6a83ae9f4a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node f53d310d-09bb-41ac-9fbd-278da041a11a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api [0.066382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae5b70ff-0256-4ecf-b776-49afd78705ac 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"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_third_party_admin_cannot_get_node [0.271618s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e21bcc2-9afc-4335-ad20-85e98883df71 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.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.133672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d765f648-70db-4368-a9ef-f86ac5d67d9d 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}"} {3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 [0.040241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-28c3d524-51a6-4932-8987-f621f721fa9b 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.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash [0.045438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2e5461c-99b6-4773-83ea-b3b096e8fd0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.097584s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_12 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-69639921-6fdb-4e31-8601-fbbd4922b354 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a trait 'CUSTOM_12'\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_nested_dict_masking [0.566762s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json [0.088588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1.json WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_set_mask_enabled [0.064789s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.089183s] ... 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-997b73a7-dd63-4bca-8d2c-3bc1abb1bd47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_values_masked [0.064732s] ... ok {3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml [0.120072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1.xml WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits [0.095129s] ... 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-ac03322c-c29a-432a-b04e-d2d07f4e8fca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"traits": ["CUSTOM_1", "CUSTOM_2"]} {2} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_add_auth_opts [0.055616s] ... ok {2} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_os_service_types_alias [0.043772s] ... ok {3} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.091465s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.097753s] ... 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-865c0e14-7e08-4261-a77a-ed80f2a1ef88 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.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.052912s] ... ok {3} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.084962s] ... ok {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.060383s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.102487s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/badname/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-af6bbe4d-be18-45be-a1fb-7ae6d2b7ad32 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}"} {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.049636s] ... ok {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.077651s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body [0.107447s] ... 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-7d1e69a0-bacf-44cb-b779-ebe4c45f800d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: Additional properties are not allowed ('trait' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.078229s] ... 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.test_acl.TestRBACProjectScoped.test_project_scoped_024_owner_reader_can_get_their_node [0.645290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99652e8c-320f-4e4f-a12d-bb72eadf724c 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-22T18:21:45.006486+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_keystone.KeystoneTestCase.test_get_service_auth [0.116317s] ... ok {2} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.053943s] ... ok {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info [0.112890s] ... ok {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.062490s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_owner_reader_cannot_get_other_node [0.190086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/d09beb7d-9c89-4568-8b3c-0d5069b0e359 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-52ffc102-6b37-4104-8dd6-bce8a8b834c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d09beb7d-9c89-4568-8b3c-0d5069b0e359 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.132901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin [0.077142s] ... ok {3} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.070484s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_lessee_reader_can_get_their_node [0.180432s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de9bb041-ead0-4d4f-958d-510c4858a183 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-22T18:21:45.420862+00:00", "updated_at": "2025-05-22T18:21:45.443167+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": "c6489d33-284f-438c-992d-8388936b5700", "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": "c6489d33-284f-438c-992d-8388936b5700", "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_exclude_port [0.161152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.061475s] ... ok {3} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.077733s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_lessee_reader_cant_get_other_node [0.140781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/65645a8d-15ef-4dbd-b3db-68684c5f9f7b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b3c7448b-a4cf-43b9-ac49-c690ffb0d9ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 65645a8d-15ef-4dbd-b3db-68684c5f9f7b could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.567323s] ... 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-46b0d771-c57d-4a63-9a6e-e175fad6a79a 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.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.171419s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_028_third_party_admin_cant_get_node [0.087889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/36d9a49b-1226-48a5-8153-b514fbe1d7db WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d7d3af2-785b-4397-ab73-547e6d59908a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 36d9a49b-1226-48a5-8153-b514fbe1d7db could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.194639s] ... 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.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.158253s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-b3c19fd1-58a5-4b22-a8b8-bdf1b3a1a06b 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.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_restricted_fields [0.112012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6f8a056c-2be7-4ac4-9123-046a08e8dd48 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-22T18:21:45.769786+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_network.GetPhysnetsByPortgroupID.test_one_port [0.191005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidateSchemaTest.test_schema [0.094733s] ... ok {3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args [0.076883s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_cannot_get_restricted_fields [0.136925s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee119485-5a99-4ef4-a334-089b7caf2625 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-22T18:21:45.923414+00:00", "updated_at": "2025-05-22T18:21:45.947558+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": "18100224-b20f-450f-9502-82556c7a1171", "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": "18100224-b20f-450f-9502-82556c7a1171", "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.controllers.v1.test_node.TestTraits.test_set_all_traits_empty [0.152029s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': []} GOT Response: 204 No Content Openstack-Request-Id: req-03166265-6c85-445c-adb1-27bf64ab8549 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.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs [0.098595s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_owner_reader_can_get_detail [0.084926s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d01c38e1-6561-47ae-9fda-1aa6b5319d8a 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-22T18:21:46.019990+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-22T18:21:46.031566+00:00", "updated_at": "2025-05-22T18:21:46.038599+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": "f6d4aa1b-cfa1-48e6-9f78-dbd6952809cf", "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": "f6d4aa1b-cfa1-48e6-9f78-dbd6952809cf", "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_two_ports [0.202505s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestTraits.test_set_all_traits_fails_with_bad_version [0.120900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': []} GOT Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_lessee_reader_can_get_detail [0.085632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-253fe6d1-f012-4e49-9280-6517ce191223 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-22T18:21:46.116419+00:00", "updated_at": "2025-05-22T18:21:46.124895+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": "e7de8f55-7f37-4df2-9b4a-7068cd347406", "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": "e7de8f55-7f37-4df2-9b4a-7068cd347406", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed [0.100897s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_third_party_admin_cannot_get_detail [0.081905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73a0f701-c68b-450f-978c-1dce39e4f9ae 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.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait [0.145822s] ... 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-b6d6d19e-3301-4350-a4ba-c067a2d048cf 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}"} {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.224637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes [0.170244s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_034_owner_admin_can_patch_node_extra [0.155156s] ... 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-03e2e912-2e21-4882-8e95-716beb349399 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful [0.111888s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.159433s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-14ea3598-25ff-4666-a52d-201acc199b96 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}"} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.144918s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 [0.107127s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_manager_can_patch_node_extra [0.176135s] ... 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-8fa59b5a-cdc3-4eb3-a077-5d7dbf3b5206 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestTraits.test_set_all_traits_rejects_too_long_trait [0.144469s] ... 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-f140662b-4527-4e68-b554-51ed97034dd0 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}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 [0.100188s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.179578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_036_owner_member_can_patch_node_extra [0.152803s] ... 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-471014c3-3299-4e95-93bd-855d443b1797 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestTraits.test_set_all_traits_with_chassis [0.170013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-1d12f036-27c5-4b72-8b18-c585138585d6 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.test_acl.TestRBACProjectScoped.test_project_scoped_037_owner_reader_cannot_patch_node_extra [0.093794s] ... 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-f132b105-e2fb-4ad1-8df5-9c088c32c040 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.193087s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_conn_init_failure [0.147710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_038_lessee_admin_can_patch_node_extra [0.135337s] ... 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-8f2fe42b-71e5-405b-8f6c-239e2ce93bf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_port.TestListPorts.test_collection_links [0.213084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a6548dc-a075-45cb-a666-f2d1a1321087 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": "bf0027f0-dcd4-46ec-822b-2db29e61c419", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/bf0027f0-dcd4-46ec-822b-2db29e61c419", "rel": "self"}, {"href": "http://localhost/ports/bf0027f0-dcd4-46ec-822b-2db29e61c419", "rel": "bookmark"}]}, {"uuid": "b4e26c3b-863f-4b1d-8d23-399d369e8694", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/b4e26c3b-863f-4b1d-8d23-399d369e8694", "rel": "self"}, {"href": "http://localhost/ports/b4e26c3b-863f-4b1d-8d23-399d369e8694", "rel": "bookmark"}]}, {"uuid": "8e7c3b9b-d97c-4300-ab13-750b2dbe2f2a", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/8e7c3b9b-d97c-4300-ab13-750b2dbe2f2a", "rel": "self"}, {"href": "http://localhost/ports/8e7c3b9b-d97c-4300-ab13-750b2dbe2f2a", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=8e7c3b9b-d97c-4300-ab13-750b2dbe2f2a"} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.164787s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.245137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.117605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_collection_links_custom_fields [0.153928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de531e28-9059-434b-9e1a-df79ca861e28 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": "e2fc32ef-c53c-414e-9805-f84ef6c686c3", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/e2fc32ef-c53c-414e-9805-f84ef6c686c3", "rel": "self"}, {"href": "http://localhost/ports/e2fc32ef-c53c-414e-9805-f84ef6c686c3", "rel": "bookmark"}]}, {"uuid": "c170417e-2426-4f96-9a86-4a25e139e831", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/c170417e-2426-4f96-9a86-4a25e139e831", "rel": "self"}, {"href": "http://localhost/ports/c170417e-2426-4f96-9a86-4a25e139e831", "rel": "bookmark"}]}, {"uuid": "51a2827d-903b-4484-8bfc-98d86fde2a4d", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/51a2827d-903b-4484-8bfc-98d86fde2a4d", "rel": "self"}, {"href": "http://localhost/ports/51a2827d-903b-4484-8bfc-98d86fde2a4d", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=51a2827d-903b-4484-8bfc-98d86fde2a4d"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_manager_can_patch_node_extra [0.227945s] ... 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-f7a10a09-7ea3-4b0e-8952-f3d057d3cbc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.107359s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [0.179296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_collection_links_default_limit [0.130140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7503bdea-5a52-4c11-9b2d-12b3eb737d76 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": "bf0b6620-a26b-4288-a524-b64dc442571e", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/bf0b6620-a26b-4288-a524-b64dc442571e", "rel": "self"}, {"href": "http://localhost/ports/bf0b6620-a26b-4288-a524-b64dc442571e", "rel": "bookmark"}]}, {"uuid": "a2e9bcab-3821-4526-80b2-bb4c6f42ba05", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/a2e9bcab-3821-4526-80b2-bb4c6f42ba05", "rel": "self"}, {"href": "http://localhost/ports/a2e9bcab-3821-4526-80b2-bb4c6f42ba05", "rel": "bookmark"}]}, {"uuid": "78769e11-5665-42a6-9aba-53d8c2bb2fb9", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/78769e11-5665-42a6-9aba-53d8c2bb2fb9", "rel": "self"}, {"href": "http://localhost/ports/78769e11-5665-42a6-9aba-53d8c2bb2fb9", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=78769e11-5665-42a6-9aba-53d8c2bb2fb9"} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.105497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_detail [0.103262s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef1a8ed8-49b0-485b-badb-f77b545dd8b8 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-22T18:21:47.364293+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.common.test_cinder.TestCinderActions.test_detach_volumes [0.098117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_detail_against_single [0.075117s] ... 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-1c1c67d3-4332-4d12-8278-41ee87b7cb04 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.219521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_detail_by_node_name_not_supported [0.078188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c64ab189-f0ac-40b4-a07f-093aec9360ad X-Openstack-Ironic-Api-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.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.104150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_040_lessee_member_can_patch_node_extra [0.423423s] ... 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-959e615f-c778-4f1f-ba8e-c6e0bd54c090 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_port.TestListPorts.test_detail_by_node_name_ok [0.091761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9e8960f-e9db-4668-b375-cc54d0b1b6db 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-22T18:21:47.623743+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_conn_init_failure_bad_request [0.090942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.256174s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_detail_query [0.110051s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6fbdaae1-e5e5-4002-a996-cea7f5fca83f 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-22T18:21:47.725900+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"}]} {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.115454s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_detail_query_false [0.110335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3445a226-7b0e-47bd-8362-72f62a73acf3 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-355ab102-2186-4461-9afd-582aa617ff0b 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_041_lessee_reader_cannot_patch_node_extra [0.263912s] ... 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-82daa2f7-f581-41e1-b25f-647554749544 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.114426s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_detail_sort_key_allowed [0.088978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc01f9ba-3fc3-499e-902a-329846d331cf 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": "0cd2e6ae-6a10-4b09-a754-95771cd5a676", "created_at": "2025-05-22T18:21:47.935247+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/0cd2e6ae-6a10-4b09-a754-95771cd5a676", "rel": "self"}, {"href": "http://localhost/ports/0cd2e6ae-6a10-4b09-a754-95771cd5a676", "rel": "bookmark"}], "portgroup_uuid": null}, {"uuid": "35606183-2c0b-4fc1-863e-02907b5ce464", "created_at": "2025-05-22T18:21:47.943912+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/35606183-2c0b-4fc1-863e-02907b5ce464", "rel": "self"}, {"href": "http://localhost/ports/35606183-2c0b-4fc1-863e-02907b5ce464", "rel": "bookmark"}], "portgroup_uuid": null}]} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.241685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.093858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_detail_sort_key_not_allowed [0.061773s] ... 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-c40ca4bf-e5d3-45f4-8167-8ca6dc490c79 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.test_acl.TestRBACProjectScoped.test_project_scoped_042_third_party_admin_cannot_patch_node_extra [0.246346s] ... 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-a61c4779-89fb-4ac8-b17b-35725ea4aaf9 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.102056s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1ed41820-fd6c-4913-a6c3-76b55ffa5985 X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports_via_not_pxe [0.195196s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_detail_using_query_false_and_fields [0.130745s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9a2c234-bfea-4226-904e-f721a9ea0762 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.171576s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_detail_using_query_old_version [0.099160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ca7fffcb-352b-46e6-a1cc-958e67bb2f61 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_admin_can_change_drivers [0.347420s] ... 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-d8dfd89c-b18e-4750-9361-3c0b0fe06af4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_port.TestListPorts.test_detail_with_incorrect_api_usage [0.089517s] ... 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-848675e5-d812-482b-ac21-25bf935ad314 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.221038s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_empty [0.092619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb5e931d-19c4-45f8-b13b-40f0b557180a 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.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached [0.604245s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.147411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.139569s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_get_all_by_node_name_non_admin [0.210922s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c1b14eb-36ac-4aa2-9f44-b57765028af1 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": "ae674584-f84c-4d98-b81a-d42f7f296bdf", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/ae674584-f84c-4d98-b81a-d42f7f296bdf", "rel": "self"}, {"href": "http://localhost/ports/ae674584-f84c-4d98-b81a-d42f7f296bdf", "rel": "bookmark"}]}, {"uuid": "a9da3535-266e-4252-b0d0-0af75af5f39d", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/a9da3535-266e-4252-b0d0-0af75af5f39d", "rel": "self"}, {"href": "http://localhost/ports/a9da3535-266e-4252-b0d0-0af75af5f39d", "rel": "bookmark"}]}, {"uuid": "c1448c89-a0bb-434c-88d8-d355a82c948b", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/c1448c89-a0bb-434c-88d8-d355a82c948b", "rel": "self"}, {"href": "http://localhost/ports/c1448c89-a0bb-434c-88d8-d355a82c948b", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_manager_can_change_drivers [0.331714s] ... 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-be6b65a0-16fb-4730-8848-6e9af4bc241a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.168114s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.134996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.120438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match [0.189250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4ea1c01-96a9-4151-a5c0-b4403fe77f42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": []} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data [0.086443s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 [0.066491s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported [0.132780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e4f3d685-1588-4eac-9aec-f17818742343 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_045_owner_member_can_patch_all_the_things [0.403036s] ... 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-c6da2980-3cbc-4096-ba11-d1bc8a341eeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestNeutronNetworkActions.test_get_node_portmap [0.139380s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.081877s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok [0.221791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87eed793-b911-4957-add1-4341d614f77f 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": "158fc30c-6ab0-4522-bda9-98c1d0a7dd6c", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/158fc30c-6ab0-4522-bda9-98c1d0a7dd6c", "rel": "self"}, {"href": "http://localhost/ports/158fc30c-6ab0-4522-bda9-98c1d0a7dd6c", "rel": "bookmark"}]}, {"uuid": "88e5769c-c2c3-493d-b42b-481817d309e4", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/88e5769c-c2c3-493d-b42b-481817d309e4", "rel": "self"}, {"href": "http://localhost/ports/88e5769c-c2c3-493d-b42b-481817d309e4", "rel": "bookmark"}]}, {"uuid": "67b02402-bcec-46e0-b84f-9048d9b992da", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/67b02402-bcec-46e0-b84f-9048d9b992da", "rel": "self"}, {"href": "http://localhost/ports/67b02402-bcec-46e0-b84f-9048d9b992da", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.081548s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.108334s] ... 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-643da1cc-d709-4e19-a3b6-b3f4c2a74300 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-22T18:21:49.493032+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.test_acl.TestRBACProjectScoped.test_project_scoped_046_owner_member_can_change_lessee [0.338363s] ... 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-d91f3579-be85-4edb-bd3e-abf3851152ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestNeutronNetworkActions.test_remove_neutron_ports [0.121242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_get_all_by_portgroup_name [0.117990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=fooname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41e7e147-5eb6-47b6-85bf-fa5e5969ff41 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-22T18:21:49.600553+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.113485s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_get_all_by_portgroup_uuid [0.136483s] ... 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-7d86acdb-aab4-47b2-84bb-971e41155139 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-22T18:21:49.719393+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_lessee [0.235875s] ... 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-150bb3e9-33b4-40fd-9dd6-aa1bc84257f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.123281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.085718s] ... 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-acfe5ce4-1bf2-4013-9e19-54d07e385139 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.common.test_cinder.TestCinderClient.test__get_cinder_session [0.964901s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.121469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin [0.158373s] ... 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-264339c2-de4f-4652-bde0-22b87e64ac63 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-22T18:21:49.964778+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.082428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.064711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_048_lessee_manager_cannot_change_lessee [0.311037s] ... 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-d3996f90-a935-4004-aaf3-45edf046e960 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.074062s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match [0.152190s] ... 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-7c4c5ded-697f-40b0-8c9d-c73bba263c49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": []} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.074437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.147090s] ... 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-eb808afb-302c-403d-ab0d-8de09360b4f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.105225s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.056515s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.279185s] ... 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-3542e2f5-3ce1-4392-8e79-a29f71433a3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.077488s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields [0.155834s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-693b23e6-522e-4e36-b428-08a167a17e26 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": "0c4419c3-e868-4a77-905b-2da057f3a764", "extra": {}, "links": [{"href": "http://localhost/v1/ports/0c4419c3-e868-4a77-905b-2da057f3a764", "rel": "self"}, {"href": "http://localhost/ports/0c4419c3-e868-4a77-905b-2da057f3a764", "rel": "bookmark"}]}, {"uuid": "6c8fabc2-2036-44c6-a8d4-87270dd1df6d", "extra": {}, "links": [{"href": "http://localhost/v1/ports/6c8fabc2-2036-44c6-a8d4-87270dd1df6d", "rel": "self"}, {"href": "http://localhost/ports/6c8fabc2-2036-44c6-a8d4-87270dd1df6d", "rel": "bookmark"}]}, {"uuid": "80d7e388-ccee-48a8-bf7f-9bcf6b48aa9d", "extra": {}, "links": [{"href": "http://localhost/v1/ports/80d7e388-ccee-48a8-bf7f-9bcf6b48aa9d", "rel": "self"}, {"href": "http://localhost/ports/80d7e388-ccee-48a8-bf7f-9bcf6b48aa9d", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_lessee_manager_cannot_change_owner [0.206155s] ... 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-42a4d2be-d873-4832-9cc7-923f2c369786 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.149744s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bca2077-4a60-4c13-b9dd-ed85db07e51d 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/f31d92df-1cb6-444e-a2ca-854b3f98721a", "rel": "self"}, {"href": "http://localhost/ports/f31d92df-1cb6-444e-a2ca-854b3f98721a", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/37cb0a0f-4ecc-45a5-b04a-b52c5b84f85c", "rel": "self"}, {"href": "http://localhost/ports/37cb0a0f-4ecc-45a5-b04a-b52c5b84f85c", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=37cb0a0f-4ecc-45a5-b04a-b52c5b84f85c"} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.241919s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.068509s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.141877s] ... 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-298c3b47-9597-4b99-94e6-0cfe023f9e8a X-Openstack-Ironic-Api-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.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.062212s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.057993s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_cinder_client_with_context [1.083588s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.159622s] ... 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-b4fdd07e-1831-4852-9d3f-7b6aca7ebde9 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_can_change_lessee [0.339450s] ... 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-74b37e52-e180-4bbc-aafa-4a734fe2b825 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.071469s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary [0.097892s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.092078s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.083208s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic [0.185922s] ... 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-6e1ff00a-1be1-4ca8-bfb2-31eaf8774ea9 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-e0707c4e-e8dc-42db-85bf-b3994462dd82 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"}]} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged [0.080551s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.087049s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.087889s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.073026s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network [0.174350s] ... 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-a336a40d-5948-4ad1-b4d3-3dfdba1faa10 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-14ebc4e6-62b2-44f6-945e-1c6d012552d6 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"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_can_change_lessee [0.376794s] ... 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-7fac90e9-9067-4b62-aad1-fa01193a7beb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.074248s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.052960s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.150952s] ... 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-2e932630-0b52-49b7-bea3-1b793c12de29 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.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.089995s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.049631s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.045111s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one [0.146036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ff4c0c8-5f1b-405d-8fa1-bb5b147aca6c 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-22T18:21:51.610731+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.test_acl.TestRBACProjectScoped.test_project_scoped_053_owner_admin_cannot_change_owner [0.274153s] ... 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-595c68e4-67e8-490a-a233-3569fc062602 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.036218s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.033334s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.102553s] ... 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-6ab47aa1-21cf-4fce-911d-6988bdcfa7d2 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"}]} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.061324s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.035088s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_owner_manager_cannot_change_owner [0.183307s] ... 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-897e1d55-4ec9-4fd3-bc26-e057dea55ff4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.088448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a6ecca0-ae1e-41f8-8811-b4a7dba543f9 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-22T18:21:51.831066+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.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.072279s] ... ok {3} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.710500s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.064288s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_ports_by_description [0.130448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?description_contains=cat WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed732309-6296-4edc-bea1-a25144b9cb36 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": "3e18ca37-9eb4-4b93-816e-036417497283", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/3e18ca37-9eb4-4b93-816e-036417497283", "rel": "self"}, {"href": "http://localhost/ports/3e18ca37-9eb4-4b93-816e-036417497283", "rel": "bookmark"}]}]} GET /v1/ports?description_contains=dog WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-422d1255-d455-4ff6-b5fe-135793799b4d 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": "56355ec9-efdc-402b-b09b-9204115fa263", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/56355ec9-efdc-402b-b09b-9204115fa263", "rel": "self"}, {"href": "http://localhost/ports/56355ec9-efdc-402b-b09b-9204115fa263", "rel": "bookmark"}]}]} {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.056281s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.067181s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.049631s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.048716s] ... ok {2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.041639s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.118802s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d28f435-ef79-481f-8090-4269072b7135 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-22T18:21:52.060296+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-b9c6730b-f04d-4a89-8ee4-149e554ede17 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-22T18:21:52.060296+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.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_can_set_protected [0.267350s] ... 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-8f544f88-797b-4e03-9b04-82d45ef3b41e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_oci_registry.TestRegistrySessionHelper.test_get_token_from_config [0.032635s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override [0.055834s] ... ok {2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_bad_file [0.026757s] ... ok {2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_default [0.031408s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.063768s] ... ok {2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_no_match [0.031644s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.119225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-03643fc0-fc8f-48d8-be36-37a48a98a39c 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-22T18:21:52.177639+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-3dd1a2d1-2b8b-4d0b-aee3-224266837f4a 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-22T18:21:52.177639+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {2} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.044863s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override [0.071764s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.027238s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.052143s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.038689s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_instance_info [0.223854s] ... 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-7e96c4f0-519d-49ec-a05a-62b8ce9b5261 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.112312s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb97a13b-610b-4593-9219-ec2fb4e211bb 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-22T18:21:52.307285+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-81de9b71-e50b-48c6-aa18-0da94183ee19 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-22T18:21:52.307285+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.036874s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.063181s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.035436s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.026468s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.036025s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.048412s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.121996s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.041051s] ... ok {3} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.062754s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.044198s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.051155s] ... ok {3} ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.068146s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.047959s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.077059s] ... ok {2} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX [0.079761s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.064486s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.029935s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.023609s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.022112s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.062798s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions [0.030088s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.033712s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.067981s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.063526s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.049348s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure [0.063289s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_ovn_vtep [0.697332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0e63b56-a025-4f2e-8420-eb494c6c0f31 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-22T18:21:52.931511+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-21dc80a4-efc8-4d5e-8f76-b8919f08a606 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-22T18:21:52.931511+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-b25f016f-6d49-46a9-bd29-8ede966c28fd 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-22T18:21:52.931511+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} {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.031950s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.027983s] ... ok {3} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip [0.094410s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_driver_info [0.821124s] ... 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-3af4fadc-126e-4095-8b52-bd196ebf3d38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.050266s] ... ok {3} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip_node_override [0.053212s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.139011s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb2a927b-74a1-46af-b2a4-b588f2b951df 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-22T18:21:53.160848+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-a667a1a7-b363-4af3-98f2-285f9e9ff648 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-22T18:21:53.160848+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} {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.051947s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.035343s] ... ok {3} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_copy [0.077949s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.030630s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.101785s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7795f490-fdd6-4341-8ec2-1dc75b089139 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-22T18:21:53.276796+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.common.test_rpc.TestUtils.test_init_globals_notifications_disabled [0.044559s] ... ok {3} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link [0.083668s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_properties [0.182792s] ... 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-e78902be-39c3-4e34-9cee-c8c1349b968b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {2} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled [0.062639s] ... ok {3} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link_no_restorecon [0.106600s] ... ok {2} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.053330s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.147711s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d7b6a9e2-8912-4056-9b15-ed0384e3306c 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-22T18:21:53.399743+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-a24fb219-fae6-4509-8b40-c3a19369391f 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-22T18:21:53.399743+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"} {3} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_unpublish_local [0.078343s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_network_data [0.183802s] ... 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-3beebdb0-68ff-4a60-8a52-696865d5498a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:network_data\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_filename [0.052341s] ... ok {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_qs [0.050427s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links [0.155453s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/984287c7-0d78-437b-8227-5486df1b9283 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1bd7c97b-3761-40f1-a4f5-34b9da8fa756 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "984287c7-0d78-437b-8227-5486df1b9283", "created_at": "2025-05-22T18:21:53.538624+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/984287c7-0d78-437b-8227-5486df1b9283", "rel": "self"}, {"href": "http://localhost/ports/984287c7-0d78-437b-8227-5486df1b9283", "rel": "bookmark"}]} GET /v1/ports/984287c7-0d78-437b-8227-5486df1b9283 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7bc634a6-98e0-48b4-aa58-e6bc7c0629b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "984287c7-0d78-437b-8227-5486df1b9283", "created_at": "2025-05-22T18:21:53.538624+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/984287c7-0d78-437b-8227-5486df1b9283", "rel": "self"}, {"href": "http://localhost/ports/984287c7-0d78-437b-8227-5486df1b9283", "rel": "bookmark"}]} GET /ports/984287c7-0d78-437b-8227-5486df1b9283 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-68294c02-d9be-4f25-b4db-44cebd9fd01d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "984287c7-0d78-437b-8227-5486df1b9283", "created_at": "2025-05-22T18:21:53.538624+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/984287c7-0d78-437b-8227-5486df1b9283", "rel": "self"}, {"href": "http://localhost/ports/984287c7-0d78-437b-8227-5486df1b9283", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_without_qs [0.058909s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_lessee_member_cannot_patch_name [0.208255s] ... 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-9f44c4db-bb0d-4f28-8b68-ce9157f5c855 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:name\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_publish [0.074056s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.163077s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/88edce4a-4f6c-420e-8365-f68c741a2827 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2805201-b9e2-4057-a0c2-03c922683cf4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "88edce4a-4f6c-420e-8365-f68c741a2827", "created_at": "2025-05-22T18:21:53.710467+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/88edce4a-4f6c-420e-8365-f68c741a2827", "rel": "self"}, {"href": "http://foo/ports/88edce4a-4f6c-420e-8365-f68c741a2827", "rel": "bookmark"}]} GET /v1/ports/88edce4a-4f6c-420e-8365-f68c741a2827 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a41be4b-d215-4885-906d-1344f3678a67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "88edce4a-4f6c-420e-8365-f68c741a2827", "created_at": "2025-05-22T18:21:53.710467+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/88edce4a-4f6c-420e-8365-f68c741a2827", "rel": "self"}, {"href": "http://foo/ports/88edce4a-4f6c-420e-8365-f68c741a2827", "rel": "bookmark"}]} GET /ports/88edce4a-4f6c-420e-8365-f68c741a2827 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bbcfe51b-c8d5-4d8e-b7f5-47e3c4596689 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "88edce4a-4f6c-420e-8365-f68c741a2827", "created_at": "2025-05-22T18:21:53.710467+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/88edce4a-4f6c-420e-8365-f68c741a2827", "rel": "self"}, {"href": "http://foo/ports/88edce4a-4f6c-420e-8365-f68c741a2827", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_unpublish [0.069503s] ... ok {3} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_fails_multiple [0.049225s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden [0.132951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e9cd24bc-5b69-43c0-8ae8-3dc84f3c6f78 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes [0.054609s] ... ok {3} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes_iso_gpt [0.059677s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_lessee_member_cannot_patch_retired [0.232436s] ... 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-da924a3a-cc4c-4189-8b44-6c94d30855c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure [0.061043s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project [0.139396s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-74aa9219-dd06-4d42-be46-b242481393bc X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class [0.048036s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_version_and_cap [0.076195s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv4_success [0.092113s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many [0.218595s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ec147c06-78cd-48c1-8734-9e311707e01b 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": "99c38bbd-6eb8-4374-b923-1c955537e047", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/99c38bbd-6eb8-4374-b923-1c955537e047", "rel": "self"}, {"href": "http://localhost/ports/99c38bbd-6eb8-4374-b923-1c955537e047", "rel": "bookmark"}]}, {"uuid": "f8860828-6160-4e18-bae7-8e0dc2e24681", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/f8860828-6160-4e18-bae7-8e0dc2e24681", "rel": "self"}, {"href": "http://localhost/ports/f8860828-6160-4e18-bae7-8e0dc2e24681", "rel": "bookmark"}]}, {"uuid": "3796ed56-8176-48c3-aa91-92a8b12cedae", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/3796ed56-8176-48c3-aa91-92a8b12cedae", "rel": "self"}, {"href": "http://localhost/ports/3796ed56-8176-48c3-aa91-92a8b12cedae", "rel": "bookmark"}]}, {"uuid": "721c975e-02c7-400e-8da0-233e6f65a47e", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/721c975e-02c7-400e-8da0-233e6f65a47e", "rel": "self"}, {"href": "http://localhost/ports/721c975e-02c7-400e-8da0-233e6f65a47e", "rel": "bookmark"}]}, {"uuid": "893e2ed4-9042-47e0-88ba-122554c77602", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/893e2ed4-9042-47e0-88ba-122554c77602", "rel": "self"}, {"href": "http://localhost/ports/893e2ed4-9042-47e0-88ba-122554c77602", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_admin_can_patch_node_instance_info [0.343881s] ... 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-0488061c-596e-44f4-8ccf-84d2aff27778 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_json_rpc.TestClient.test_call_ipv6_success [0.073477s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ [0.923482s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv6_success_rfc2732 [0.083748s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin [0.146591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cccb292e-f837-4c08-b578-dc98467fc42b 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": "339fe56a-e082-46b5-86fb-59bc27fabb42", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/339fe56a-e082-46b5-86fb-59bc27fabb42", "rel": "self"}, {"href": "http://localhost/ports/339fe56a-e082-46b5-86fb-59bc27fabb42", "rel": "bookmark"}]}, {"uuid": "2c138f9a-0b6d-460e-8e11-78c1f737be5b", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/2c138f9a-0b6d-460e-8e11-78c1f737be5b", "rel": "self"}, {"href": "http://localhost/ports/2c138f9a-0b6d-460e-8e11-78c1f737be5b", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success [0.073118s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.089260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3433f24-c537-4a85-ae9a-e1d76a2727b5 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"}]}]} {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version [0.080766s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_063_owner_manager_can_patch_node_instance_info [0.259264s] ... 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-6c366323-4c7e-4176-823a-ac2b0ee32382 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_json_rpc.TestClient.test_call_success_with_version_and_cap [0.071079s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.117681s] ... 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-0e6b03d8-1105-4f61-9d0f-c44b7126b1ca 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": "575b0ade-b682-49cb-8be6-e1d669993c49", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/575b0ade-b682-49cb-8be6-e1d669993c49", "rel": "self"}, {"href": "http://localhost/ports/575b0ade-b682-49cb-8be6-e1d669993c49", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure [0.084787s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.075880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-af3c891d-772b-4204-959a-d130781652ae X-Openstack-Ironic-Api-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.common.test_json_rpc.TestClient.test_call_with_client_ssl [0.057999s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_064_owner_member_can_patch_node_instance_info [0.253246s] ... 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-b4dffb12-3e17-426f-9c26-78bab4130fc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_port.TestListPorts.test_port_by_address_non_admin [0.121086s] ... 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-a91ce894-0aa6-47e9-be42-336a3db15319 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": "16f41e5b-20bb-4516-83a3-a1a8a1aaae96", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/16f41e5b-20bb-4516-83a3-a1a8a1aaae96", "rel": "self"}, {"href": "http://localhost/ports/16f41e5b-20bb-4516-83a3-a1a8a1aaae96", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_with_ssl [0.091716s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_can_send_version [0.076362s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match [0.107480s] ... 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-8f4b3941-c3df-43e7-8c39-1bae018677cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_owner_reader_can_patch_node_instance_info [0.168865s] ... 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-33d11783-54e4-497f-9b75-cd75da65adeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_failure [0.083610s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.068034s] ... 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-a597c6e1-f6d6-449f-a494-57bdd292c115 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.common.test_json_rpc.TestClient.test_cast_success [0.077294s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.078959s] ... 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.common.test_json_rpc.TestClient.test_cast_success_with_version [0.062598s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.103576s] ... 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\": \"\"}"} {3} ironic.tests.unit.common.test_json_rpc.TestClient.test_mask_secrets [0.058590s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestSession.test_http_basic [0.058032s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_066_lessee_admin_can_patch_node_instance_info [0.320009s] ... 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-ac5a85dd-dfe9-430f-a79d-1084f19827dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_swift.SwiftTestCase.test_create_object [1.014425s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestSession.test_http_basic_deprecated [0.056337s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key [0.168526s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c89a4ae-7e01-4ba4-9b0b-968f70c52a95 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": "529ea6a9-7c39-4f63-9dff-739a465cec4f", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/529ea6a9-7c39-4f63-9dff-739a465cec4f", "rel": "self"}, {"href": "http://localhost/ports/529ea6a9-7c39-4f63-9dff-739a465cec4f", "rel": "bookmark"}]}, {"uuid": "cd7fdcbe-f924-4c43-af19-9f8c69d78fcb", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/cd7fdcbe-f924-4c43-af19-9f8c69d78fcb", "rel": "self"}, {"href": "http://localhost/ports/cd7fdcbe-f924-4c43-af19-9f8c69d78fcb", "rel": "bookmark"}]}, {"uuid": "d35118c1-353d-4bb0-b330-75785b081730", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/d35118c1-353d-4bb0-b330-75785b081730", "rel": "self"}, {"href": "http://localhost/ports/d35118c1-353d-4bb0-b330-75785b081730", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_json_rpc.TestSession.test_keystone [0.049981s] ... ok {3} ironic.tests.unit.common.test_json_rpc.TestSession.test_noauth [0.056419s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed [0.170514s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e49c55c1-10ae-43e8-b61b-62be3b24bfa0 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": "fdddec83-dee0-476c-9dbc-73918f365267", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/fdddec83-dee0-476c-9dbc-73918f365267", "rel": "self"}, {"href": "http://localhost/ports/fdddec83-dee0-476c-9dbc-73918f365267", "rel": "bookmark"}]}, {"uuid": "6c70be68-1722-4921-a770-63442254a536", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/6c70be68-1722-4921-a770-63442254a536", "rel": "self"}, {"href": "http://localhost/ports/6c70be68-1722-4921-a770-63442254a536", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error [0.086019s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_067_lessee_manager_can_patch_node_instance_info [0.236996s] ... 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-b93b522d-9960-40e2-93cb-31b7cdc87ff2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_molds.ConfigurationMoldTestCase.test_get_configuration_empty [0.094126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_sort_key_invalid [0.149750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-89eff7c3-71c0-46b4-b018-d21910833813 X-Openstack-Ironic-Api-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-65619871-db05-429d-909b-89796c791fd2 X-Openstack-Ironic-Api-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-e4a11f8e-c90d-49e3-88ac-45ce2abe698c X-Openstack-Ironic-Api-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-b57a2557-d2f2-4020-88a8-f439ce42a177 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_068_lessee_member_cannot_patch_node_instance_info [0.161580s] ... 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-8179ec5e-9fdf-49cc-9578-17373bc3d9dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http [0.084585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPorts.test_sort_key_not_allowed [0.105279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-ea5cb02f-1f8c-4d70-8159-91c767c5c08c 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}"} {3} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error [0.099698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.174347s] ... 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-596d12c6-72c8-4453-b115-372c7bcb5b7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_multi [0.217700s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=shard1,shard2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2725bc7c-2b2b-4d93-9284-845a1474c884 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": "868908f3-a11a-4e0f-a2ab-5e808fad30ad", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/868908f3-a11a-4e0f-a2ab-5e808fad30ad", "rel": "self"}, {"href": "http://localhost/ports/868908f3-a11a-4e0f-a2ab-5e808fad30ad", "rel": "bookmark"}]}, {"uuid": "52c2135d-e9f0-4a70-831f-2689fc2fb8a2", "address": "ab:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/52c2135d-e9f0-4a70-831f-2689fc2fb8a2", "rel": "self"}, {"href": "http://localhost/ports/52c2135d-e9f0-4a70-831f-2689fc2fb8a2", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_third_party_admin_cannot_patch_node_instance_info [0.170872s] ... 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-006cba8a-6806-4430-8073-e2e21b887ff9 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single [0.150480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f56f842-da85-4ac1-8afc-f4065e48ee5e 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": "74d1a05c-ba1d-46dd-b6e2-8c90a52c0692", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/74d1a05c-ba1d-46dd-b6e2-8c90a52c0692", "rel": "self"}, {"href": "http://localhost/ports/74d1a05c-ba1d-46dd-b6e2-8c90a52c0692", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_071_owner_admin_cannot_delete_nodes [0.182176s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0919197a-41de-4f32-8251-cad18d4a3f82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth [0.454431s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port.TestListPortsByShard.test_get_by_shard_single_fail_api_version [0.129901s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5b6bf8bb-38a5-4c0f-86c7-8de7f7dc9575 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection [0.061104s] ... ok {3} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json [0.128375s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_072_owner_admin_can_delete_nodes [0.222159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bbf89072-4ca7-48a4-90b7-8543b0db78bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestDelete.test_delete_portgroup_byaddress [0.144150s] ... 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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded [0.104121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestDelete.test_delete_portgroup_byid [0.129002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 204 No Content Openstack-Request-Id: req-94a71e7c-0f57-4e2e-b694-90d0b5868832 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_molds.ConfigurationMoldTestCase.test_get_configuration_swift [0.087787s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_073_service_cannot_delete_owner_admin_nodes [0.176758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2d2579a3-5cd0-4cca-9fc2-cb04d44bb5bc X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.110952s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1 GOT Response: 204 No Content Openstack-Request-Id: req-598a1745-e8bf-414a-bb5e-06aa9d309316 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_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth [0.104082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [1.463351s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.119894s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bd89f9ea-e7f4-4bee-994b-93555f10c787 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_074_service_can_delete_nodes_in_own_project [0.194596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0f03d733-cd22-4148-b356-49245b725e20 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error [0.114757s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded [0.087317s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestDelete.test_delete_portgroup_byname_with_json [0.156934s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1.json GOT Response: 204 No Content Openstack-Request-Id: req-78f2bb74-64fe-416d-99d5-fdd6814c7de2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_075_owner_manager_cannot_delete_nodes [0.168383s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a4e4bfff-2ce4-4e5f-babe-b680c2f946fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_molds.ConfigurationMoldTestCase.test_save_configuration_http [0.094663s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestDelete.test_delete_portgroup_invalid_api_version [0.133608s] ... 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\": \"\"}"} {3} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http_error [0.101216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.168938s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-83b4b804-f9a9-4c39-876e-aadf058a6838 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth [0.090720s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestDelete.test_delete_portgroup_node_locked [0.199035s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-351a5ede-eeea-43fd-ac85-0ab0c748507a X-Openstack-Ironic-Api-Maximum-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.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift [0.119570s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_077_lessee_manager_cannot_delete_nodes [0.205604s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a6366da6-8c42-475e-b2fe-0692354f0954 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_object_fails [0.749551s] ... ok {3} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth [0.116723s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestListPortgroups.test_collection_links [0.235525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bc78cdf9-a68d-489b-adb6-a3a84faf74d4 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": "f6d17438-fa93-4048-90ba-aa26e521742c", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/f6d17438-fa93-4048-90ba-aa26e521742c", "rel": "self"}, {"href": "http://localhost/portgroups/f6d17438-fa93-4048-90ba-aa26e521742c", "rel": "bookmark"}]}, {"uuid": "ae3d9085-381e-4100-ad5f-fbdcebfcc0fe", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/ae3d9085-381e-4100-ad5f-fbdcebfcc0fe", "rel": "self"}, {"href": "http://localhost/portgroups/ae3d9085-381e-4100-ad5f-fbdcebfcc0fe", "rel": "bookmark"}]}, {"uuid": "7434a0d9-fa6d-494e-adbd-6147bd7f7234", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/7434a0d9-fa6d-494e-adbd-6147bd7f7234", "rel": "self"}, {"href": "http://localhost/portgroups/7434a0d9-fa6d-494e-adbd-6147bd7f7234", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=7434a0d9-fa6d-494e-adbd-6147bd7f7234"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_078_third_party_admin_cannot_delete_nodes [0.218248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-21e31573-9a8f-4f9f-bef3-94159e8892d0 X-Openstack-Ironic-Api-Maximum-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_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.201409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestListPortgroups.test_collection_links_custom_fields [0.189036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbf3c155-f304-4303-91cf-7bfac2f59275 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": "4c806d90-146b-4953-9c21-8c5d30d73ce6", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/4c806d90-146b-4953-9c21-8c5d30d73ce6", "rel": "self"}, {"href": "http://localhost/portgroups/4c806d90-146b-4953-9c21-8c5d30d73ce6", "rel": "bookmark"}]}, {"uuid": "0f5fa3cf-4b37-4992-820a-bd93f1f2ad7c", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/0f5fa3cf-4b37-4992-820a-bd93f1f2ad7c", "rel": "self"}, {"href": "http://localhost/portgroups/0f5fa3cf-4b37-4992-820a-bd93f1f2ad7c", "rel": "bookmark"}]}, {"uuid": "7cbdd1e6-12a4-47b0-be3c-ae00e8cc9d00", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/portgroups/7cbdd1e6-12a4-47b0-be3c-ae00e8cc9d00", "rel": "self"}, {"href": "http://localhost/portgroups/7cbdd1e6-12a4-47b0-be3c-ae00e8cc9d00", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=7cbdd1e6-12a4-47b0-be3c-ae00e8cc9d00"} {3} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.163344s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_079_owner_admin_can_validate_node [0.252936s] ... 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-eef0948c-db79-4859-b28c-85bfc0cc6908 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestListPortgroups.test_collection_links_default_limit [0.187454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-404b6762-d32f-456c-a4a9-27263b0d7c80 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": "10fb8996-b13e-44d5-bd38-aed796be06b9", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/10fb8996-b13e-44d5-bd38-aed796be06b9", "rel": "self"}, {"href": "http://localhost/portgroups/10fb8996-b13e-44d5-bd38-aed796be06b9", "rel": "bookmark"}]}, {"uuid": "906e86b7-88bd-4cea-9109-3c359c9aea7f", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/906e86b7-88bd-4cea-9109-3c359c9aea7f", "rel": "self"}, {"href": "http://localhost/portgroups/906e86b7-88bd-4cea-9109-3c359c9aea7f", "rel": "bookmark"}]}, {"uuid": "89f07f82-1bff-4e94-85f5-026d3fa33572", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/89f07f82-1bff-4e94-85f5-026d3fa33572", "rel": "self"}, {"href": "http://localhost/portgroups/89f07f82-1bff-4e94-85f5-026d3fa33572", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=89f07f82-1bff-4e94-85f5-026d3fa33572"} {3} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid [0.069645s] ... ok {3} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_failure [0.056858s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail [0.125877s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-acf5e185-3d6f-4013-be55-05b276ba7a16 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-22T18:21:58.166773+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_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_missing_segment [0.053740s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_080_owner_manager_can_validate_node [0.232716s] ... 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-8636cb5b-54e7-4112-9cd6-06e14bbe9ba2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestListPortgroups.test_detail_against_single [0.120691s] ... 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-d6050a3e-1ca9-4fcf-b397-7f421cdca59b X-Openstack-Ironic-Api-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.common.test_swift.SwiftTestCase.test_create_object_from_data [0.819169s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.157161s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e92f6887-36ae-4b34-b697-a769898882d6 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-22T18:21:58.468041+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_081_lessee_admin_can_validate_node [0.291990s] ... 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-dc5ab9c0-8d3a-4783-a483-c0a206748382 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestListPortgroups.test_detail_invalid_api_version [0.099977s] ... 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\": \"\"}"} {3} ironic.tests.unit.common.test_neutron.TestNeutronNetworkInterfaceMixin.test_get_network_names_and_uuids [0.447725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.TestListPortgroups.test_detail_query [0.123180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7d748bd-6988-4828-9ec7-2c4a2660a4c2 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-22T18:21:58.693392+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_neutron.TestUnbindPort.test_unbind_neutron_port [0.061275s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_lessee_manager_can_validate_node [0.248154s] ... 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-362e87c7-e490-412d-abd7-4758d6b16a1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.074232s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.178186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e7748f2-0335-4cec-a4e7-81260ea2e6fd 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-728c090f-504e-4f14-aad8-d7ae4a2517fb 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_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.093086s] ... ok {3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound [0.070241s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_member_can_validate_node [0.264568s] ... 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-13db8f06-96ea-40f3-bb51-907e545e57a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound [0.076270s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.174172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9f86394-2121-475d-a2dd-6597089b62fc 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": "650538f8-ef79-46b9-ad5e-0f2dd6ef1538", "created_at": "2025-05-22T18:21:59.043344+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/650538f8-ef79-46b9-ad5e-0f2dd6ef1538", "rel": "self"}, {"href": "http://localhost/portgroups/650538f8-ef79-46b9-ad5e-0f2dd6ef1538", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/650538f8-ef79-46b9-ad5e-0f2dd6ef1538/ports", "rel": "self"}, {"href": "http://localhost/portgroups/650538f8-ef79-46b9-ad5e-0f2dd6ef1538/ports", "rel": "bookmark"}]}, {"uuid": "c1c2ab0c-28ec-4675-8efd-46e860cf8d8c", "created_at": "2025-05-22T18:21:59.028366+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/c1c2ab0c-28ec-4675-8efd-46e860cf8d8c", "rel": "self"}, {"href": "http://localhost/portgroups/c1c2ab0c-28ec-4675-8efd-46e860cf8d8c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/c1c2ab0c-28ec-4675-8efd-46e860cf8d8c/ports", "rel": "self"}, {"href": "http://localhost/portgroups/c1c2ab0c-28ec-4675-8efd-46e860cf8d8c/ports", "rel": "bookmark"}]}, {"uuid": "c6b9d665-0471-45f5-96e1-533fcab24b08", "created_at": "2025-05-22T18:21:59.018544+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/c6b9d665-0471-45f5-96e1-533fcab24b08", "rel": "self"}, {"href": "http://localhost/portgroups/c6b9d665-0471-45f5-96e1-533fcab24b08", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/c6b9d665-0471-45f5-96e1-533fcab24b08/ports", "rel": "self"}, {"href": "http://localhost/portgroups/c6b9d665-0471-45f5-96e1-533fcab24b08/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound_empty [0.064567s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.090340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5fe59683-4cdd-4e83-a9be-b3f7f401e30e 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_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_not_found [0.086937s] ... ok {3} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_osc_error [0.067594s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_member_cannot_validate_node [0.259915s] ... 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-633c61b6-70af-4635-9c06-5f5b985aeeb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.121907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-db485b25-0584-497b-9500-a2fdae7fdc71 X-Openstack-Ironic-Api-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_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.100929s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields [0.146843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b22540b-9990-4fbf-9f3d-d4d5dbdbe6ea 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_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac [0.088949s] ... ok {3} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port [0.069452s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_third_party_admin_cannot_validate_node [0.285647s] ... 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-d028c03b-b3af-4aed-82bc-0587668a39a3 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.130236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-65ef05a5-72a1-4d21-8b23-400af15c49ef 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_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client [0.075341s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.110644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-648a11bf-09c7-484c-b436-a06c56f24d82 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_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception [0.067510s] ... ok {3} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.069997s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_container_fails [1.413253s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_admin_can_set_maintenance [0.234050s] ... 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-2f977614-584c-430f-8e89-2c72bb4f2205 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_neutron.TestValidateNetwork.test_by_uuid [0.062644s] ... ok {3} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.068346s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.213091s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dfc8d95e-f5b2-48cb-aba6-f9db4746d687 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": "a44ef4cd-bc47-4945-b1a2-9ffe1f40616c", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/a44ef4cd-bc47-4945-b1a2-9ffe1f40616c", "rel": "self"}, {"href": "http://localhost/portgroups/a44ef4cd-bc47-4945-b1a2-9ffe1f40616c", "rel": "bookmark"}]}, {"uuid": "324c917e-ce06-4308-a1bf-50058dd2e468", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/324c917e-ce06-4308-a1bf-50058dd2e468", "rel": "self"}, {"href": "http://localhost/portgroups/324c917e-ce06-4308-a1bf-50058dd2e468", "rel": "bookmark"}]}, {"uuid": "1fb91ed5-0531-462f-8008-16329e332690", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/1fb91ed5-0531-462f-8008-16329e332690", "rel": "self"}, {"href": "http://localhost/portgroups/1fb91ed5-0531-462f-8008-16329e332690", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.072078s] ... ok {3} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.071160s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_owner_manager_can_set_maintenance [0.264019s] ... 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-c1c1885b-a41b-48d5-8941-1487783d1bf2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_nova.NovaApiTestCase.test_invalid_power_update [0.077994s] ... ok {3} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.087496s] ... ok {3} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.080963s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_lessee_admin_can_set_maintenance [0.260459s] ... 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-72a28b5e-b5df-43f5-bb70-2acb060286be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_nova.NovaApiTestCase.test_power_update_3 [0.098738s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_object_fails [0.650753s] ... ok {3} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 [0.078598s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_lessee_manager_can_set_maintenance [0.252168s] ... 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-3445c7e9-70cf-44f7-b7a9-6ec3c85a8c17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_nova.NovaApiTestCase.test_power_update_5 [0.078311s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.722177s] ... 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-f76a5cec-4038-4fd2-b7c1-5b539f0e20c0 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-22T18:22:00.645507+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_nova.NovaApiTestCase.test_power_update_failed [0.098712s] ... ok {3} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.096340s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.217204s] ... 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-e8db8753-6841-4567-84ae-64adb8b327b2 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"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_member_can_set_maintenance [0.278556s] ... 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-f4b20589-c1a4-4235-87df-8e18b9aa2207 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.102476s] ... ok {3} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.088451s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.197919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16885c52-5c8f-429f-9dba-e3b5e515eff3 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": "7de9a3fe-6c65-4d57-befa-03e8363ef505", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/7de9a3fe-6c65-4d57-befa-03e8363ef505", "rel": "self"}, {"href": "http://localhost/portgroups/7de9a3fe-6c65-4d57-befa-03e8363ef505", "rel": "bookmark"}]}, {"uuid": "846de381-1f88-4ff8-9853-4def13e52119", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/846de381-1f88-4ff8-9853-4def13e52119", "rel": "self"}, {"href": "http://localhost/portgroups/846de381-1f88-4ff8-9853-4def13e52119", "rel": "bookmark"}]}, {"uuid": "a07fb409-7e81-4446-b65c-31d86d54662f", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/a07fb409-7e81-4446-b65c-31d86d54662f", "rel": "self"}, {"href": "http://localhost/portgroups/a07fb409-7e81-4446-b65c-31d86d54662f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.085727s] ... ok {2} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object [0.664188s] ... ok {3} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.067605s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.123707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-75d601a6-f6f1-4ff4-bac5-18dbd7536c62 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/e2071e8e-8582-40d5-877b-850cda2cfbe1", "rel": "self"}, {"href": "http://localhost/portgroups/e2071e8e-8582-40d5-877b-850cda2cfbe1", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/b458167a-f26c-45e7-9e4c-2ed36f90a9f4", "rel": "self"}, {"href": "http://localhost/portgroups/b458167a-f26c-45e7-9e4c-2ed36f90a9f4", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=b458167a-f26c-45e7-9e4c-2ed36f90a9f4"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.052996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?fields=address,properties WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e307edc6-17bd-4b8e-9123-12435342e566 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_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.103326s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.064349s] ... 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-911074f0-2a72-430a-b6d6-1e3c6a64016c X-Openstack-Ironic-Api-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_portgroup.TestListPortgroups.test_get_one [0.060543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e602c7b-5845-4530-bf83-b00fa5af6234 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-22T18:22:01.399577+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_nova.TestNovaAdapter.test_get_nova_adapter [0.102087s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.059498s] ... 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-8d66d2db-8cc6-49da-bf43-ae07bdd61a75 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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.041428s] ... 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_oci_registry.OciClientRequestTestCase.test__resolve_tag [0.085680s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.049954s] ... 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-3a89fe68-7ace-4609-87f1-ed45c21debe6 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_oci_registry.OciClientRequestTestCase.test__resolve_tag_auth_needed [0.093300s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_double_json_in_name [0.061503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87c4aba1-ca96-4dd0-b45f-773809e8ea5b 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-22T18:22:01.624547+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.061241s] ... 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-4049fdbb-9040-4b98-b522-fa1172e021e6 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-22T18:22:01.685477+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_oci_registry.OciClientRequestTestCase.test__resolve_tag_follows_links [0.090845s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.070733s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b9f7467-921f-4256-9ed0-963f61aac9ea 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-22T18:22:01.751458+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.json", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_not_found [0.043994s] ... 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-5fcd624a-7f17-477d-8d39-5dd2847b62bd X-Openstack-Ironic-Api-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_oci_registry.OciClientRequestTestCase.test__resolve_tag_if_not_found [0.098859s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_member_cannot_set_maintenance [0.874839s] ... 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-df6ee167-69ff-4d1a-906c-8af17f3a8a2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_portgroup.TestListPortgroups.test_get_one_with_suffix [0.050251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfd1529c-8f61-4afd-bf6b-1b33c23232bf 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-22T18:22:01.858562+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__resolve_tag_temp_failure [0.085307s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.097932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eea6ea67-f012-4804-bcdf-c3f9ad5d7335 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "458d768b-f5b7-488a-af79-cb81ac2a1da9", "created_at": "2025-05-22T18:22:01.926895+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/458d768b-f5b7-488a-af79-cb81ac2a1da9", "rel": "self"}, {"href": "http://localhost/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9/ports", "rel": "self"}, {"href": "http://localhost/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9/ports", "rel": "bookmark"}]} GET /v1/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b3fbc93-8eec-44a8-83a2-1198b65d70ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "458d768b-f5b7-488a-af79-cb81ac2a1da9", "created_at": "2025-05-22T18:22:01.926895+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/458d768b-f5b7-488a-af79-cb81ac2a1da9", "rel": "self"}, {"href": "http://localhost/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9/ports", "rel": "self"}, {"href": "http://localhost/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9/ports", "rel": "bookmark"}]} GET /portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c4acb54-8713-4190-b6cd-a801eb8d7385 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "458d768b-f5b7-488a-af79-cb81ac2a1da9", "created_at": "2025-05-22T18:22:01.926895+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/458d768b-f5b7-488a-af79-cb81ac2a1da9", "rel": "self"}, {"href": "http://localhost/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9/ports", "rel": "self"}, {"href": "http://localhost/portgroups/458d768b-f5b7-488a-af79-cb81ac2a1da9/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.069391s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ccafc9ce-1e0f-48b6-bc97-c2b63f3ed6a4 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": "13f6c427-df60-4369-acae-ea8090f72c7e", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/13f6c427-df60-4369-acae-ea8090f72c7e", "rel": "self"}, {"href": "http://localhost/portgroups/13f6c427-df60-4369-acae-ea8090f72c7e", "rel": "bookmark"}]}, {"uuid": "a97382f0-4278-4def-a319-b365d633bbfe", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/a97382f0-4278-4def-a319-b365d633bbfe", "rel": "self"}, {"href": "http://localhost/portgroups/a97382f0-4278-4def-a319-b365d633bbfe", "rel": "bookmark"}]}, {"uuid": "2431e7d3-6ced-4c62-89f1-b8e25d8a710b", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/2431e7d3-6ced-4c62-89f1-b8e25d8a710b", "rel": "self"}, {"href": "http://localhost/portgroups/2431e7d3-6ced-4c62-89f1-b8e25d8a710b", "rel": "bookmark"}]}, {"uuid": "6b728c81-0c1b-4a8e-ba78-32de335ef8bd", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/6b728c81-0c1b-4a8e-ba78-32de335ef8bd", "rel": "self"}, {"href": "http://localhost/portgroups/6b728c81-0c1b-4a8e-ba78-32de335ef8bd", "rel": "bookmark"}]}, {"uuid": "02d6c437-4f06-42d3-a735-70c5ee593bc3", "address": "52:54:00:cf:2d:34", "name": "portgroup4", "links": [{"href": "http://localhost/v1/portgroups/02d6c437-4f06-42d3-a735-70c5ee593bc3", "rel": "self"}, {"href": "http://localhost/portgroups/02d6c437-4f06-42d3-a735-70c5ee593bc3", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.048692s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1759a156-47fc-4eb3-ac25-b932e9fa8359 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_092_third_party_admin_cannot_set_maintenance [0.300298s] ... 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-52c30ad1-1574-405b-87a7-30a8c1ecd6c5 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.070860s] ... 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-f1a578ad-907d-4b35-a4b3-d9c7b2a25390 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": "17f78e48-2f59-4241-a092-9f4db991e4e7", "address": "aa:bb:cc:dd:ee:f1", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/17f78e48-2f59-4241-a092-9f4db991e4e7", "rel": "self"}, {"href": "http://localhost/portgroups/17f78e48-2f59-4241-a092-9f4db991e4e7", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.038962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-358c0de0-08f0-4dd1-aada-b232cf019dc3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.038996s] ... 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-df53d76e-0104-4deb-8880-99fa58f8c516 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": []} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.072633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-794f6b59-995e-4ddc-b066-97ff798f43b6 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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_admin_can_unset_maintenance [0.262055s] ... 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-2f532cfb-b14a-49e7-bfaf-4c0abb11cc7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestListPortgroups.test_ports_subresource [0.159013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/0d9a2795-067c-4f2f-9994-229ed9ac4359/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58a8ba77-009e-4cd1-b2f2-43e31aec8b91 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": "e297e1f9-dfb4-4fa8-9ef4-73690e901dc7", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/e297e1f9-dfb4-4fa8-9ef4-73690e901dc7", "rel": "self"}, {"href": "http://localhost/ports/e297e1f9-dfb4-4fa8-9ef4-73690e901dc7", "rel": "bookmark"}]}, {"uuid": "b3f5100e-9f47-483e-b306-f54af63664f8", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/b3f5100e-9f47-483e-b306-f54af63664f8", "rel": "self"}, {"href": "http://localhost/ports/b3f5100e-9f47-483e-b306-f54af63664f8", "rel": "bookmark"}]}]} GET /v1/portgroups/0d9a2795-067c-4f2f-9994-229ed9ac4359/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58852279-294b-4df7-868e-482f9606c8d7 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": "e297e1f9-dfb4-4fa8-9ef4-73690e901dc7", "created_at": "2025-05-22T18:22:02.403822+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/e297e1f9-dfb4-4fa8-9ef4-73690e901dc7", "rel": "self"}, {"href": "http://localhost/ports/e297e1f9-dfb4-4fa8-9ef4-73690e901dc7", "rel": "bookmark"}], "portgroup_uuid": "0d9a2795-067c-4f2f-9994-229ed9ac4359"}, {"uuid": "b3f5100e-9f47-483e-b306-f54af63664f8", "created_at": "2025-05-22T18:22:02.416659+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/b3f5100e-9f47-483e-b306-f54af63664f8", "rel": "self"}, {"href": "http://localhost/ports/b3f5100e-9f47-483e-b306-f54af63664f8", "rel": "bookmark"}], "portgroup_uuid": "0d9a2795-067c-4f2f-9994-229ed9ac4359"}]} GET /v1/portgroups/0d9a2795-067c-4f2f-9994-229ed9ac4359/ports?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc4d3ac8-2ff2-4bad-b13f-fba3c3b34c23 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": "e297e1f9-dfb4-4fa8-9ef4-73690e901dc7", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/e297e1f9-dfb4-4fa8-9ef4-73690e901dc7", "rel": "self"}, {"href": "http://localhost/ports/e297e1f9-dfb4-4fa8-9ef4-73690e901dc7", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=e297e1f9-dfb4-4fa8-9ef4-73690e901dc7"} GET /v1/portgroups/0d9a2795-067c-4f2f-9994-229ed9ac4359/ports/989c68d6-ae7d-4884-b1cb-f89df398cf21 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET /v1/portgroups/0d9a2795-067c-4f2f-9994-229ed9ac4359/ports/c77573a6-b842-4a96-90ec-a79914d7e5f6 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d99b74de-ea7d-4090-82ce-fe4b172aa0cb X-Openstack-Ironic-Api-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.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.072653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/767d63ef-d976-4185-8f43-d8d002e043e5/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_owner_manager_can_unset_maintenance [0.185293s] ... 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-9fe0e6e3-5d18-423e-a7c8-2a675b95d760 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestListPortgroups.test_ports_subresource_not_allowed [0.050348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bad_header [0.739523s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.081582s] ... 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-bacacc41-b079-4457-8ed7-872f089109cc X-Openstack-Ironic-Api-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_authenticate_401_basic_auth [0.090848s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_095_lessee_admin_can_unset_maintenance [0.220746s] ... 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-85d3ab12-a3e0-456c-b76b-7e7d28d3532e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.075480s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.123607s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3b42d8e-f85f-4a2a-ac4c-3d91b92f2b52 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": "acf41500-630a-473f-a988-b14372f5aee7", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/acf41500-630a-473f-a988-b14372f5aee7", "rel": "self"}, {"href": "http://localhost/portgroups/acf41500-630a-473f-a988-b14372f5aee7", "rel": "bookmark"}]}, {"uuid": "d4839432-9fac-4058-b189-f3a89b9d8f06", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/d4839432-9fac-4058-b189-f3a89b9d8f06", "rel": "self"}, {"href": "http://localhost/portgroups/d4839432-9fac-4058-b189-f3a89b9d8f06", "rel": "bookmark"}]}, {"uuid": "e488ade4-efc1-4528-b619-4e63329a7512", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/e488ade4-efc1-4528-b619-4e63329a7512", "rel": "self"}, {"href": "http://localhost/portgroups/e488ade4-efc1-4528-b619-4e63329a7512", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bearer_auth [0.076898s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_fallback_to_service_config [0.082245s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.140457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9b35238-f2dc-4743-9b17-50d3b2f85eee 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": "12139dff-8033-4d22-967a-193221522973", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/12139dff-8033-4d22-967a-193221522973", "rel": "self"}, {"href": "http://localhost/portgroups/12139dff-8033-4d22-967a-193221522973", "rel": "bookmark"}]}, {"uuid": "c3bc032d-7e88-4ee3-be9e-e54d06f34243", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/c3bc032d-7e88-4ee3-be9e-e54d06f34243", "rel": "self"}, {"href": "http://localhost/portgroups/c3bc032d-7e88-4ee3-be9e-e54d06f34243", "rel": "bookmark"}]}, {"uuid": "a68749c7-47fc-4279-be53-62eefcf69408", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/a68749c7-47fc-4279-be53-62eefcf69408", "rel": "self"}, {"href": "http://localhost/portgroups/a68749c7-47fc-4279-be53-62eefcf69408", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_no_header [0.069673s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_096_lessee_manager_can_unset_maintenance [0.268604s] ... 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-0908ab19-0110-4576-9967-555c133cc56e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestListPortgroups.test_sort_key_invalid [0.119571s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-98d1b3a1-ebfc-4b5d-aa9b-c28530f7b01c X-Openstack-Ironic-Api-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-26489e4d-0398-42f1-bcee-1d6a680f441d X-Openstack-Ironic-Api-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-15051928-e949-4a40-9993-2a30c8d3fb58 X-Openstack-Ironic-Api-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-becf8d3d-7540-413f-a921-e1b3f1fcd5f1 X-Openstack-Ironic-Api-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_authenticate_noop [0.072227s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest [0.089663s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.105372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5bc0a87f-06ec-4008-b80c-7a56b6633644 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_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_401 [0.079598s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_member_can_unset_maintnenance [0.249600s] ... 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-d542092a-bfa9-462b-8893-175477dd4bd9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_swift.SwiftTestCase.test_delete_object_exc [2.189044s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.143738s] ... 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-9a1e5622-b163-43ff-a9b1-49d962e9f38e 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-22T18:22:03.300259+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.072733s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_404 [0.091928s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.133952s] ... 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-91522b8f-d7da-42fc-aed7-e7a724cdf8f0 X-Openstack-Ironic-Api-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.075887s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_member_cannot_unset_maintenance [0.264447s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b06f4b1-12da-476e-be54-0050acf180b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.118003s] ... 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-7fe51402-b06d-49c0-a003-f977814d3ab2 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-22T18:22:03.596140+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_download_blob_from_manifest_code_check [0.097411s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_access_denied [0.077063s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.097282s] ... 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-e1a0f3f0-431b-409c-9fa4-8be9072b1279 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-22T18:22:03.670598+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"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_third_party_admin_cannot_unset_maintenance [0.158612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/0b38a457-2a29-4a79-a8fd-19271b732a64/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-89f561c5-261a-4cb2-9b08-89f4f5d1b188 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 0b38a457-2a29-4a79-a8fd-19271b732a64 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_authorized [0.068121s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_found [0.075881s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.158078s] ... 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-38c18bec-8686-4087-b90a-62b69cb9ab13 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_admin_can_set_boot_device [0.154341s] ... 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-e3aef8fc-a51b-4eeb-9ada-2e6cf536fd78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_get_artifact_index_temporaryfailure [0.065552s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_with_tag [0.081773s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.172999s] ... 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-15889da5-4a58-4d35-a0ab-cd34a3748d00 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-22T18:22:03.987770+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.075363s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_auth_required [0.086364s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_owner_manager_can_set_boot_device [0.272864s] ... 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-6dd83d9e-f6ad-4446-85f6-a8be4284bec1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestPatch.test_remove_mode_not_allowed [0.167251s] ... 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-00793a30-e9c4-428c-83ab-bbcb4fb3f077 X-Openstack-Ironic-Api-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.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [0.862605s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_checksum_verifies [0.074426s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_access_denied [0.065681s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_not_found [0.100014s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_lessee_admin_cannot_set_boot_device [0.269119s] ... 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-43edddbc-68b2-4ed0-b585-209b1ff25342 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_oci_registry.OciClientRequestTestCase.test_get_manifest_image_temporary_failure [0.072882s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.278159s] ... 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-41f8ac3b-999d-410d-af73-7e57fccce308 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-22T18:22:04.331614+00:00", "updated_at": "2025-05-22T18:22:04.367134+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-602b3da4-4781-407d-bfc4-349757b6d607 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-22T18:22:04.331614+00:00", "updated_at": "2025-05-22T18:22:04.367134+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.079463s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.093031s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id [0.168497s] ... 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-d64793bd-227f-415a-9207-579e82f39c6f X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_lessee_manager_cannot_set_boot_device [0.243991s] ... 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-5e81fdaa-036f-4781-81c8-952fe2061132 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe [0.176233s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.168246s] ... 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-81fd8388-f45d-4e06-b308-ea73091f06bd X-Openstack-Ironic-Api-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 non-existent object 'non-existent'\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.196312s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.197432s] ... 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-9dcc2641-ad9b-4895-b420-b8b3787331f2 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_member_cannot_set_boot_device [0.325313s] ... 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-3e5bee0e-791d-4665-bebc-56ddae6fc6fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_swift.SwiftTestCase.test_get_temp_url [0.925659s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_member_cannot_set_boot_device [0.176191s] ... 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-e7d129db-6542-41e0-bfc4-a81e3c66131d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.221783s] ... 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-26a4fe00-065a-435f-8118-b24e6dd19a73 X-Openstack-Ironic-Api-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_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.253480s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.225990s] ... 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-8b6e7226-4eda-4f2d-a7a4-f888a8e356d5 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-22T18:22:05.369573+00:00", "updated_at": "2025-05-22T18:22:05.408374+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"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_third_party_admin_cannot_set_boot_device [0.254401s] ... 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-e5483ebc-5c9b-4702-96ab-a7e4e066a2b5 X-Openstack-Ironic-Api-Maximum-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_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.231440s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.163685s] ... 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-b6326ef9-9dcd-41b7-9821-1bc1b4863ce9 X-Openstack-Ironic-Api-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.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso [0.187763s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_owner_admin_can_get_boot_device [0.215622s] ... 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-2b64d4c5-7f63-4174-9918-de3c85d202b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.GenericUtilsTestCase.test__get_hash_object [0.624994s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid [0.184709s] ... 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-f4a79774-17c1-4534-8886-ed0257ed8563 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-22T18:22:05.749445+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.048741s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ [0.050843s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.185821s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.049097s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_manager_can_get_boot_device [0.227195s] ... 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-4fa6c043-263a-4ad5-9e85-7942ae233ec0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.047219s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.190748s] ... 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-5a76ed34-8f5d-45e9-b581-42b409aae68e X-Openstack-Ironic-Api-Maximum-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.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled [0.075852s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot [0.202110s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.072812s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_admin_cannot_get_boot_device [0.207802s] ... 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-c9fd14ad-a373-4a7d-a7ec-9e7e8b1905a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.061684s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular [0.217962s] ... 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-8e7a1157-71b0-429a-9fa2-f7f09b65453d 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-22T18:22:06.132104+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.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.087781s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_owner_member_cannot_get_boot_device [0.176080s] ... 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-954aa7c7-0fc5-49f6-8174-5f72efc268ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue [0.274480s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.068484s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.045069s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format [0.219242s] ... 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-1f975a86-aa8e-47e2-b2a6-74bc4c300ec7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.050318s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_lessee_member_cannot_get_boot_device [0.181592s] ... 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-44dfc18d-2bc4-419b-aa4b-5dbe1e8ff31d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.073371s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.217159s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.088093s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_112_owner_reader_cannot_get_boot_device [0.175330s] ... 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-845172c8-3183-4796-bb3e-2d03b9b9856d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.096354s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.215726s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.068974s] ... ok {2} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_wrap_ipv6 [0.044554s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_lessee_reader_cannot_get_boot_device [0.166980s] ... 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-31290119-894e-49e7-a91e-243ee39b41f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_vnc.VncTestCase.test_get_console [0.057582s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.197031s] ... ok {2} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_authorize [0.085754s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_114_third_party_admin_cannot_get_boot_device [0.201784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/90cf5549-cf4b-4c34-b6f0-f8da8226b22e/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bb6b66f9-26f9-44ef-b259-a55d5871cb79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 90cf5549-cf4b-4c34-b6f0-f8da8226b22e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_unauthorize [0.090535s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.230614s] ... ok {2} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_validate [0.103963s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed [0.790594s] ... 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\"}"} {2} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_validate_expired [0.082687s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_owner_admin_can_get_supported_boot_devices [0.231651s] ... 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-cc1fc768-a221-4a77-ac44-fd0a8b4185a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_vnc.VncTestCase.test_token_valid_until [0.059582s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi [0.194668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestPatch.test_update_byid [0.194681s] ... 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-cb10ada1-70ee-4c6d-87a5-7c46e5f99f1d 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-22T18:22:07.363529+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.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.133319s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestPatch.test_update_byid_invalid_api_version [0.121721s] ... 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.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios [0.149045s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.300920s] ... 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-c5770874-96e2-4937-8b3b-8573ec71d3fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi [0.123978s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestPatch.test_update_byname [0.178793s] ... 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-d8b83553-c0a2-4240-941c-a88c7b75c5e8 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-22T18:22:07.668289+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.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.219301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 [0.102980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node [0.106939s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.160075s] ... 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-d1be810c-a3b3-4ba3-ad19-ba2a7d9643f1 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-22T18:22:07.845729+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.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi [0.103871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.276889s] ... 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-aafe213c-1329-44d3-88ca-c11c70de2d08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.176715s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestPatch.test_update_in_inspecting_allowed [0.184344s] ... 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-3e96abc9-e5bb-4a82-93af-ed625b703860 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-22T18:22:08.039473+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.074871s] ... 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-c7e676ce-7d5e-4453-ba1c-4c76b0802e8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options [0.258302s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_lessee_admin_cannot_get_supported_boot_devices [0.312427s] ... 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-2a100a8a-b835-4562-b58b-031dcc3decd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_allocations.BackfillAllocationTestCase.test_state_not_active [0.258644s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_hexadecimal_lunid [0.138914s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_manager_cannot_get_supported_boot_devices [0.100079s] ... 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-c839b162-6a7b-49a3-a057-8c6bdec09f9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.239223s] ... 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-9d04a9b4-f331-4fad-8321-69fb6503788f X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_120_third_party_admin_cannot_get_supported_boot_devices [0.095119s] ... 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-39525abf-b3c5-473c-af52-fcf52849014d X-Openstack-Ironic-Api-Maximum-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_allocations.BackfillAllocationTestCase.test_traits_mismatch [0.181551s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.205818s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.137136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/4f19788b-0b75-40b9-85a9-09408fe1e71a WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a7d50c9c-85f8-43d5-8f85-872e2c49b6bf X-Openstack-Ironic-Api-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 4f19788b-0b75-40b9-85a9-09408fe1e71a could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_121_owner_admin_can_send_non_masking_interrupt [0.157590s] ... 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-35e18d47-7723-4a67-a0de-922b02bc8385 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.117165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.139340s] ... ok {3} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.021325s] ... ok {3} ironic.tests.unit.common.test_utils.IsHttpUrlTestCase.test_is_http_url [0.027126s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.212791s] ... 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-c9a19e4a-b486-4f0e-9814-0bbfe0db00be 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-22T18:22:08.668234+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_utils.JinjaTemplatingTestCase.test_render_file [0.038396s] ... ok {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node [0.179427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_122_owner_manager_can_send_non_masking_interrupt [0.235069s] ... 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-a87780ad-a5b0-4eab-90a7-ace724209303 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.JinjaTemplatingTestCase.test_render_string [0.074214s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.115898s] ... 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-a2e455a0-ea72-4798-afbf-0896b701395a X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes [0.049916s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.069043s] ... 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-0a1d6bba-8c6c-417e-8588-b6ec2a44e798 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-22T18:22:08.938167+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_utils.ParseRootDeviceTestCase.test__append_operator_to_hints [0.058087s] ... ok {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.159635s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_empty_value [0.046459s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer [0.021616s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values [0.022152s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.104664s] ... 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-8046c415-1f45-4dfd-b72d-4c7f08f92da4 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-81ec6ec9-d509-4877-ac63-d5d8dfbc42f8 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_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space [0.037486s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_admin_cannot_send_non_masking_interrupt [0.292387s] ... 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-1ad60468-ab95-4d50-9399-e0c95a8943b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator [0.046063s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.119834s] ... 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-1a989bbd-73ca-4f71-a9f0-978f3be0840a 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-22T18:22:09.140011+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_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value [0.032191s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value [0.029632s] ... ok {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node [0.258406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_normalize_hint_expression_in [0.037958s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.088692s] ... 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_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space [0.033376s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space [0.023285s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space [0.025918s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_bmc_address_as_none [0.091665s] ... 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-46430d59-70c4-4d1d-947a-b0073f780a63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d37b3bf3-89c3-481e-b3db-b422c4f68c99"} {2} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.145099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_normalize_hint_expression_op_space [0.026071s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_lessee_manager_cannot_send_non_masking_interrupt [0.246303s] ... 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-e031d6ab-3392-4a7b-a07d-a2c7d737ac0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or [0.030308s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational [0.021954s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_inspector_compatibility [0.097321s] ... 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-df0eaa64-4dd0-4727-ae4d-6b933d934f2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a0d44b29-2d20-4380-8cdc-65efd00fb2fd"} {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first [0.120591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.163707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/34b5cba0-daf6-4f84-bdb5-aac231423c82/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-589aa6cc-9e49-4ca5-8149-838ee80b00a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 34b5cba0-daf6-4f84-bdb5-aac231423c82 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_invalid_schema [0.091865s] ... 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-895335ec-e00a-487e-bc34-d67af1c27fbc X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.077913s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_new_api [0.093249s] ... 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-499311dd-a0e3-48f5-9908-2c46f9c56e52 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": "1e6e4cfd-a7c4-4733-af30-a1a2b22067fb", "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/1e6e4cfd-a7c4-4733-af30-a1a2b22067fb", "rel": "self"}, {"href": "http://localhost/nodes/1e6e4cfd-a7c4-4733-af30-a1a2b22067fb", "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_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size [0.282888s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_no_usable_lookup_data [0.084779s] ... 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-946f93fc-bb42-4d67-a019-c8c7b7f1605c X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.144138s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or [0.029986s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid [0.039260s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path [0.021949s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_old_api_version [0.088088s] ... 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-a6fcfea1-7135-4535-9834-ade13e5e8d7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl [0.024775s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.103817s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model [0.023629s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name [0.021707s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational [0.029604s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project [0.081521s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial [0.034482s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size [0.023058s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor [0.029966s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup [0.180863s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=79e21121-20f6-458b-9d49-e69579700002 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6650f38-d623-4c22-9b94-8027f409d22b 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": "79e21121-20f6-458b-9d49-e69579700002", "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/79e21121-20f6-458b-9d49-e69579700002", "rel": "self"}, {"href": "http://localhost/nodes/79e21121-20f6-458b-9d49-e69579700002", "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=79e21121-20f6-458b-9d49-e69579700002 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-63a59fe2-04fe-4090-a359-0f55f73298a2 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": "79e21121-20f6-458b-9d49-e69579700002", "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/79e21121-20f6-458b-9d49-e69579700002", "rel": "self"}, {"href": "http://localhost/nodes/79e21121-20f6-458b-9d49-e69579700002", "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=79e21121-20f6-458b-9d49-e69579700002 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fb1c4c5-1779-445f-a73b-671db17dde4b 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": "79e21121-20f6-458b-9d49-e69579700002", "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/79e21121-20f6-458b-9d49-e69579700002", "rel": "self"}, {"href": "http://localho st/nodes/79e21121-20f6-458b-9d49-e69579700002", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn [0.023388s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension [0.030391s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.151464s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_reader_get_states [0.584009s] ... 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-f855f1be-f198-4731-aa01-44250cb3dbdc 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.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension [0.074423s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses [0.176626s] ... 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-6c7c9fbf-87b1-4253-822e-cbdc9a34c320 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": "0673b933-2d62-4fe1-8478-e6eab010db4b", "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/0673b933-2d62-4fe1-8478-e6eab010db4b", "rel": "self"}, {"href": "http://localhost/nodes/0673b933-2d62-4fe1-8478-e6eab010db4b", "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.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints [0.066435s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.112786s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_non_existent_hint [0.051637s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name [0.042185s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_127_lessee_reader_get_states [0.168240s] ... 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-ec56dfe8-e316-450d-a966-816db4733ce9 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} {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.111593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_string_or_space [0.045796s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid [0.186809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=9ae0aeed-4e16-4190-94eb-ed3e6a7c0ed7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7edd5b09-c1be-4bea-99a2-3532bb53af76 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": "9ae0aeed-4e16-4190-94eb-ed3e6a7c0ed7", "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/9ae0aeed-4e16-4190-94eb-ed3e6a7c0ed7", "rel": "self"}, {"href": "http://localhost/nodes/9ae0aeed-4e16-4190-94eb-ed3e6a7c0ed7", "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"]}} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators [0.026868s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators [0.028008s] ... ok {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.023197s] ... ok {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_cannot_use_reserved [0.037399s] ... ok {2} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.132145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_128_third_part_admin_cannot_get_states [0.173729s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/df279910-67c9-4afc-ae6d-9ee926146a41/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dcc58b66-5062-414a-8df0-5e0bb18aa283 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node df279910-67c9-4afc-ae6d-9ee926146a41 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_no_reserved [0.039083s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid [0.148611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=c6cc4983-c1ac-4a0b-bbd1-90e52162b31b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-749ebf9f-6e71-4f7b-973f-9419b4afaa3e 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": "c6cc4983-c1ac-4a0b-bbd1-90e52162b31b", "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/c6cc4983-c1ac-4a0b-bbd1-90e52162b31b", "rel": "self"}, {"href": "http://localhost/nodes/c6cc4983-c1ac-4a0b-bbd1-90e52162b31b", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.030971s] ... ok {3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_reserved [0.029972s] ... ok {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.091557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_129_owner_admin_can_put_power_state_change [0.211077s] ... 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-89e5e111-036c-4b5a-8a04-b5aa5d18de29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.220564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address [0.184530s] ... 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-125e9f11-1d6a-4769-b7ed-8b49851a23b0 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": "aa6a74d7-c753-4b82-b960-6dbf4390dc94", "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/aa6a74d7-c753-4b82-b960-6dbf4390dc94", "rel": "self"}, {"href": "http://localhost/nodes/aa6a74d7-c753-4b82-b960-6dbf4390dc94", "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"]}} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.075274s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.060059s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_ramdisk.TestLookupScopedRBAC.test_invalid_input_addresses [0.140364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0ac322c4-8804-4c1c-9543-23b4d6440969 X-Openstack-Ironic-Api-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.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.163855s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_with_step [0.067799s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_130_owner_manager_can_put_power_state_change [0.173078s] ... 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-895ebe39-4c5e-4e2c-80e5-3c217940a5a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_ramdisk.TestLookupScopedRBAC.test_invalid_input_node_uuid [0.129406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9a2abb66-05ba-4a99-ac0e-4af4034c8703 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.160945s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.167545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.153039s] ... 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-e2748ad8-6676-46b1-a9f1-ea6069a8ae49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup [0.155546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=7bcf9404-a4e7-42dc-8274-a3ea57341735 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07844e94-7177-4d91-a0bc-dd7d820cf263 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": "7bcf9404-a4e7-42dc-8274-a3ea57341735", "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/7bcf9404-a4e7-42dc-8274-a3ea57341735", "rel": "self"}, {"href": "http://localhost/nodes/7bcf9404-a4e7-42dc-8274-a3ea57341735", "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.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.150169s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_ramdisk.TestLookupScopedRBAC.test_not_found [0.101278s] ... 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-9109d921-1580-4add-88b0-3e221e530edf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_manager_can_put_power_state_change [0.173470s] ... 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-e38c8122-cc69-478e-9232-1ecf007eb8ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_ramdisk.TestLookupScopedRBAC.test_nothing_provided [0.077341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4347b632-0980-40af-a1a2-57ea29a48cc9 X-Openstack-Ironic-Api-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_ramdisk.TestLookupScopedRBAC.test_old_api_version [0.078143s] ... 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-f5c6e83b-c533-4b71-b79c-3a02591c4d7d X-Openstack-Ironic-Api-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.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.235301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_133_owner_member_can_put_power_state_change [0.245966s] ... 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-e3bac2c5-4ab7-4aaa-b5d0-ed11c51b211f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_ramdisk.TestLookupScopedRBAC.test_restrict_lookup [0.100687s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=ade5cc7c-8e71-4064-878d-0d109940f955 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-78d407c4-d4b0-4dc7-b88d-4ef827830945 X-Openstack-Ironic-Api-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_runbook.TestPost.test_create [0.134159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'f276af09-644a-470b-ba6a-b58e7860eeae', '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/f276af09-644a-470b-ba6a-b58e7860eeae Openstack-Request-Id: req-691ada02-1066-4076-94a4-55167a26189e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f276af09-644a-470b-ba6a-b58e7860eeae", "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/f276af09-644a-470b-ba6a-b58e7860eeae", "rel": "self"}, {"href": "http://localhost/runbooks/f276af09-644a-470b-ba6a-b58e7860eeae", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/f276af09-644a-470b-ba6a-b58e7860eeae WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6229bbf-1e50-412d-9a8f-47b6a27c7458 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f276af09-644a-470b-ba6a-b58e7860eeae", "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/f276af09-644a-470b-ba6a-b58e7860eeae", "rel": "self"}, {"href": "http://localhost/runbooks/f276af09-644a-470b-ba6a-b58e7860eeae", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic [0.245096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_complex_step_args [0.096327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '19dfe5fb-bb05-4c6e-9cae-76e46b99ba79', '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/19dfe5fb-bb05-4c6e-9cae-76e46b99ba79 Openstack-Request-Id: req-b9027e30-c1fb-44fd-835f-c214ac63805e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "19dfe5fb-bb05-4c6e-9cae-76e46b99ba79", "created_at": "2025-05-22T18:22:11.737864+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/19dfe5fb-bb05-4c6e-9cae-76e46b99ba79", "rel": "self"}, {"href": "http://localhost/runbooks/19dfe5fb-bb05-4c6e-9cae-76e46b99ba79", "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.124009s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'feb80119-ae0b-4191-a146-db411d0c7cbc', '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/feb80119-ae0b-4191-a146-db411d0c7cbc Openstack-Request-Id: req-dade78b1-7f04-43ad-87c3-a487e1bf16ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "feb80119-ae0b-4191-a146-db411d0c7cbc", "created_at": "2025-05-22T18:22:11.851868+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/feb80119-ae0b-4191-a146-db411d0c7cbc", "rel": "self"}, {"href": "http://localhost/runbooks/feb80119-ae0b-4191-a146-db411d0c7cbc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/feb80119-ae0b-4191-a146-db411d0c7cbc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6f01263-715a-42a2-9c07-324cccca9389 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "feb80119-ae0b-4191-a146-db411d0c7cbc", "created_at": "2025-05-22T18:22:11.851868+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/feb80119-ae0b-4191-a146-db411d0c7cbc", "rel": "self"}, {"href": "http://localhost/runbooks/feb80119-ae0b-4191-a146-db411d0c7cbc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.803907s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track [0.207252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_134_lessee_member_can_put_power_state_change [0.393921s] ... 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-b2409428-a33d-4b63-8886-942d741e9330 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_error [0.090691s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '587d3e35-0fa1-416e-a656-662effdf0e87', '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-c8053c98-b341-40c6-a854-065ae3054b22 X-Openstack-Ironic-Api-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.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait [0.131711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_generate_uuid [0.121391s] ... 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/0248d0f7-eeb3-4d7e-8ce8-19f2bb912017 Openstack-Request-Id: req-8539a7cb-bedd-4b48-b595-29a21ffe18a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0248d0f7-eeb3-4d7e-8ce8-19f2bb912017", "created_at": "2025-05-22T18:22:12.053144+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0248d0f7-eeb3-4d7e-8ce8-19f2bb912017", "rel": "self"}, {"href": "http://localhost/runbooks/0248d0f7-eeb3-4d7e-8ce8-19f2bb912017", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/0248d0f7-eeb3-4d7e-8ce8-19f2bb912017 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27fe789a-33b2-4153-917d-2068476be77a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0248d0f7-eeb3-4d7e-8ce8-19f2bb912017", "created_at": "2025-05-22T18:22:12.053144+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0248d0f7-eeb3-4d7e-8ce8-19f2bb912017", "rel": "self"}, {"href": "http://localhost/runbooks/0248d0f7-eeb3-4d7e-8ce8-19f2bb912017", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} None {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_reader_cannot_put_power_state_change [0.185620s] ... 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-8bdb5e14-6fe3-4c94-9986-b95aa542c993 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.243289s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.controllers.v1.test_runbook.TestPost.test_create_invalid_api_version [0.109439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '853c312e-4b19-416d-8a19-fe5920bcdcbc', '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\"}"} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.161028s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.119881s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-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_136_lessee_reader_cannot_put_power_state_change [0.218258s] ... 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-f8476aef-7fa7-4dc8-94e9-981a5f8fb7da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_empty_steps [0.134613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'e97ed4e6-4fa0-4aa3-bc0c-86da65cfefc4', 'steps': [], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-78b89d97-74f6-4db7-bc94-d04dc213d87a X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.278484s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/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_runbook.TestPost.test_create_invalid_field_extra [0.115332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '82ec4b4f-a799-4b69-b20d-9975972c05cd', '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-41108056-d3f5-403b-83ea-4773312c9454 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.186817s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-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_137_third_party_admin_cannot_put_power_state_change [0.207711s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/581025c1-dcb0-41ef-95ab-b521f2798981/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d3d021cb-093c-4ccc-8611-7b3a84c93b39 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 581025c1-dcb0-41ef-95ab-b521f2798981 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_foo [0.125866s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'e4848523-7925-4df6-9b56-9dfd60ff1b36', '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-b01c227c-0fc5-4508-84e4-926ef05d2572 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.161871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_invalid_field_name [0.121177s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 1, 'uuid': '57105d90-2d7e-4d3b-b687-9a6358660a82', '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-018c2877-90a5-4741-8f21-b1f1333ea8e2 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_admin_can_put_boot_mode_state_change [0.180184s] ... 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-98ba4567-c52a-46a9-8ced-ed8f44d5f012 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.330013s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/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.DoNextDeployStepTestCase.test_continue_node_deploy [0.082820s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_runbook.TestPost.test_create_invalid_field_name_none [0.122131s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': None, 'uuid': '8514e308-0a4c-45eb-a214-4ab34c1f9314', '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-c9cdea49-77b5-4f02-b80e-f57d8857b29a X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_owner_manager_can_put_boot_mode_state_change [0.130840s] ... 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-863395cb-d14f-48b1-aaaf-9dd7b6b89018 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot [0.122754s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.099760s] ... 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-2604c526-a4e6-411a-89af-0669bf9263ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_invalid_field_steps [0.133685s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '4ab46b71-069e-4156-87cb-a14aed278d4a', 'steps': {}, 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ddbb0280-e971-4ba1-bc6e-5438a64fd254 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: {} is not of type 'array'\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step [0.106550s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.269829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_141_lessee_manager_can_put_boot_mode_state_change [0.099418s] ... 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-dc47c5fd-90f5-4769-83ba-57a5cb922a02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation [0.078286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_runbook.TestPost.test_create_invalid_step_field_args1 [0.152013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '9b9941ff-8788-4680-be53-3736a5197364', '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-2a1c0fd0-fa4a-4d97-94d0-23e976e98c7f X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_142_owner_member_can_put_boot_mode_state_change [0.086415s] ... 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-359c3afc-a577-48b6-8b26-96696d288397 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_143_lessee_member_can_put_boot_mode_state_change [0.134728s] ... 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-d3e74587-c0c5-4dcd-8cf0-5597b91e250e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.350503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_reader_cannot_put_boot_mode_state_change [0.133022s] ... 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-10a53105-c489-4bd9-9473-d84a6ab9e96d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_145_lessee_reader_cannot_put_boot_mode_state_change [0.084839s] ... 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-2b2cdccd-5c37-45f7-bc49-31cb763a5c18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_146_third_party_admin_cannot_put_boot_mode_state_change [0.088542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/98850f21-8fd7-4f91-8828-d2f9d10a37df/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-07d34bbd-aa66-4ab7-b500-ade04f41c822 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 98850f21-8fd7-4f91-8828-d2f9d10a37df could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_admin_can_put_secure_boot_state_change [0.082292s] ... 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-0e1b01e3-29d1-4cda-be33-f71537ed05ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.308025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy [0.674681s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_148_owner_manager_can_put_secure_boot_state_change [0.139275s] ... 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-34c94b3e-516c-43b1-b61b-979670823e2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_invalid_step_field_args2 [0.691062s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'b21c1642-002d-4315-b761-d56e5b8a35bc', '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-e7c59e8a-682c-46bd-9f58-46c2e2653f59 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_lessee_admin_can_put_secure_boot_state_change [0.081508s] ... 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-1a2ef147-760e-4de4-9509-ec26c1b81f2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_invalid_step_field_foo [0.109997s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '261d1409-eb12-40a7-bea2-1555e44a9a2b', '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-c19800e0-8682-4410-8a49-0fd3360c6935 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_manager_can_put_secure_boot_state_change [0.103479s] ... 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-d4aa64a6-8171-4360-ac23-035455af0f96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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__do_node_deploy_configdrive_db_error [0.335904s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_invalid_step_field_interface1 [0.121722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'd9d57c97-528f-4f59-ae90-2ef4f21f0296', '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-3d58a585-0993-4aeb-9b21-48e0718f5efe X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_owner_member_can_put_secure_boot_state_change [0.101354s] ... 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-aa3fd233-688b-4562-9d47-2b277c5c4497 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_invalid_step_field_interface2 [0.135911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '8810e9b4-7637-491e-ad44-f705c71dd5d0', '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-c95f0c95-b3cb-4d64-b224-9036b941e658 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_152_lessee_member_can_put_secure_boot_state_change [0.120170s] ... 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-b56a61f5-6d3e-48c4-a9b1-a6370b9e5f46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.463567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_153_owner_reader_cannot_put_secure_boot_state_change [0.084068s] ... 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-771bb91c-4624-47a0-b1f6-dbcbe2695d44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_negative_order [0.130809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'bccac3bc-1485-4f85-82f2-52911d39d329', '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-169c8d86-59d6-4e46-8aaf-cd3fbc9d8411 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_154_lessee_reader_cannot_put_secure_boot_state_change [0.122952s] ... 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-886d6025-8d84-48c7-91e0-d311bd353463 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.420692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_invalid_step_field_order [0.118144s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'd712be3a-2d9f-4149-a758-06ec176381cf', '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-ad548726-d39e-41ca-9d6b-5d528b78c445 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.287993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_invalid_step_field_step [0.136692s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'e2957919-ec53-43d6-bb5f-cb8e1361dc1c', '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-07e8ddcb-26a9-413d-9d89-df5e59d51bde X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_third_party_admin_cannot_put_secure_boot_state_change [0.228812s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/e70c835b-07be-4020-a439-ead10fa203ad/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2749f657-7b43-43c5-aefa-af6dc8254200 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node e70c835b-07be-4020-a439-ead10fa203ad could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_long_name [0.155234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '64e39a46-5f7b-41d6-8b74-d7417bf5fda6', '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/64e39a46-5f7b-41d6-8b74-d7417bf5fda6 Openstack-Request-Id: req-debab1a2-0710-4a5f-8609-05e79c49a5b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "64e39a46-5f7b-41d6-8b74-d7417bf5fda6", "created_at": "2025-05-22T18:22:14.722097+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/64e39a46-5f7b-41d6-8b74-d7417bf5fda6", "rel": "self"}, {"href": "http://localhost/runbooks/64e39a46-5f7b-41d6-8b74-d7417bf5fda6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception [0.232653s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_156_owner_admin_can_change_provision_state [0.114456s] ... 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-cc73c0fe-2cd2-4fd1-94d3-6cbe8e20c333 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_name_invalid_too_long [0.104166s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '11d9f3ea-a3c9-4f41-9a64-989ee3895f4e', '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-d9ab4a81-bd93-43c2-a062-c24ca8dc6f55 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.434869s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_no_mandatory_field_name [0.083926s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'uuid': '58b38753-632c-439a-a332-5837045b7b8d', '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-a152def6-a45a-4b0b-a8fa-77f0386d6d9b X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_157_owner_manager_can_change_provision_state [0.159750s] ... 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-ea7f4515-d2ac-48c6-82b3-e3ca383107e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.270468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_no_mandatory_field_steps [0.110602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '6f801107-037f-48f5-b82e-62b5a8e1fe68', 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f4ab3ed7-ea23-4595-9787-9144c8c375ed X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_active [0.070194s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_runbook.TestPost.test_create_no_mandatory_step_field_interface [0.110614s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '1787c02c-fe4f-4f5f-9bcf-6858dfcbb92a', '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-52ba5bd6-bdac-4908-b44c-7e935a4db3f3 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_wait [0.075358s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_158_owner_member_can_change_provision_state [0.244727s] ... 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-c787a5e9-a3e3-4826-862c-8d6d7fdababb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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__do_node_deploy_driver_ironic_exception [0.337481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_no_mandatory_step_field_order [0.128601s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'd43d343c-ced9-4274-be62-ecc9abda8b0c', '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-f2ced162-95bb-4d38-b93e-1401b1ca3c3d X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.227462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_runbook.TestPost.test_create_no_mandatory_step_field_step [0.113346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '2f6acf5f-42e9-4c10-97af-3af9b6a08004', '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-def7e6e2-2a12-4c23-b622-aa4bc88cacfa X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_lessee_admin_can_change_provision_state [0.215643s] ... 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-17d95b1f-669a-4a34-a7eb-caffe5b69903 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_public_runbook_project_scope_fails [0.098235s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'bfed1472-f7be-48a5-a3e7-4c2078b5b720', '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-a7ab9848-c9ec-4fd8-8849-c93fa4f793a3 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.368819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot [0.195921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_runbook.TestPost.test_create_runbook_owner_project_scope_fails [0.092407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '4d92ee30-fa8e-40fa-a902-6df8827928a0', '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-f8fb4b0a-d48c-4d65-bb5e-19248e2ff0da X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_160_lessee_manager_can_change_provision_state [0.182173s] ... 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-9bfa0356-c545-49b3-a35b-38460c57da23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_owner_system_scope [0.097822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '90492b47-5004-4033-89ae-6cc001362842', '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/90492b47-5004-4033-89ae-6cc001362842 Openstack-Request-Id: req-fb2564bf-eb9f-4e33-b696-80c7ab15b5ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "90492b47-5004-4033-89ae-6cc001362842", "created_at": "2025-05-22T18:22:15.692608+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/90492b47-5004-4033-89ae-6cc001362842", "rel": "self"}, {"href": "http://localhost/runbooks/90492b47-5004-4033-89ae-6cc001362842", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/90492b47-5004-4033-89ae-6cc001362842 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-377e1f42-69f1-4b8a-8895-e33b6b194d5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "90492b47-5004-4033-89ae-6cc001362842", "created_at": "2025-05-22T18:22:15.692608+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/90492b47-5004-4033-89ae-6cc001362842", "rel": "self"}, {"href": "http://localhost/runbooks/90492b47-5004-4033-89ae-6cc001362842", "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_project_scope [0.108978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'e9db6b44-ac24-457e-a673-cf55354b8de1', '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/e9db6b44-ac24-457e-a673-cf55354b8de1 Openstack-Request-Id: req-2b674d26-609e-42f4-a70b-7d99550a303a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e9db6b44-ac24-457e-a673-cf55354b8de1", "created_at": "2025-05-22T18:22:15.803753+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e9db6b44-ac24-457e-a673-cf55354b8de1", "rel": "self"}, {"href": "http://localhost/runbooks/e9db6b44-ac24-457e-a673-cf55354b8de1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/e9db6b44-ac24-457e-a673-cf55354b8de1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-feeb9ea9-cfcd-441e-a475-e12e0f75edca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e9db6b44-ac24-457e-a673-cf55354b8de1", "created_at": "2025-05-22T18:22:15.803753+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e9db6b44-ac24-457e-a673-cf55354b8de1", "rel": "self"}, {"href": "http://localhost/runbooks/e9db6b44-ac24-457e-a673-cf55354b8de1", "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.197065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'f8ab2f60-3db5-4d7f-92be-979f57622ecb', '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/f8ab2f60-3db5-4d7f-92be-979f57622ecb Openstack-Request-Id: req-aa0ba225-7a5f-4c65-9be6-0c12ae63412f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f8ab2f60-3db5-4d7f-92be-979f57622ecb", "created_at": "2025-05-22T18:22:15.983997+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f8ab2f60-3db5-4d7f-92be-979f57622ecb", "rel": "self"}, {"href": "http://localhost/runbooks/f8ab2f60-3db5-4d7f-92be-979f57622ecb", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/f8ab2f60-3db5-4d7f-92be-979f57622ecb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee1f917c-60f9-47b1-bb42-cf25b3464e63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f8ab2f60-3db5-4d7f-92be-979f57622ecb", "created_at": "2025-05-22T18:22:15.983997+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f8ab2f60-3db5-4d7f-92be-979f57622ecb", "rel": "self"}, {"href": "http://localhost/runbooks/f8ab2f60-3db5-4d7f-92be-979f57622ecb", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.472938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail [0.479026s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.499443s] ... 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-7307582c-26a7-4f7a-9139-6987ab7882cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_runbook.TestPost.test_create_standard_trait_name [0.143762s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '27a327b7-962e-4d0a-a675-7afb01224a82', '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/27a327b7-962e-4d0a-a675-7afb01224a82 Openstack-Request-Id: req-867250ae-22f9-4cf3-9020-65393c986881 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "27a327b7-962e-4d0a-a675-7afb01224a82", "created_at": "2025-05-22T18:22:16.157809+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/27a327b7-962e-4d0a-a675-7afb01224a82", "rel": "self"}, {"href": "http://localhost/runbooks/27a327b7-962e-4d0a-a675-7afb01224a82", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.121844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_162_third_party_admin_cannot_change_provision_state [0.099797s] ... 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-25faf8ad-a099-4d57-a282-4af931667179 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_runbook.TestPost.test_create_step_string_order [0.112068s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'cbf6201f-b592-4a97-a459-d8775781ad85', '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/cbf6201f-b592-4a97-a459-d8775781ad85 Openstack-Request-Id: req-286736c8-361c-418c-bf51-f9068ba1a5dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "cbf6201f-b592-4a97-a459-d8775781ad85", "created_at": "2025-05-22T18:22:16.271062+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cbf6201f-b592-4a97-a459-d8775781ad85", "rel": "self"}, {"href": "http://localhost/runbooks/cbf6201f-b592-4a97-a459-d8775781ad85", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": "1"}]} {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.093890s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_service_can_change_provision_state_for_own_nodes [0.103991s] ... 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-32aad3ad-545e-4742-8ce5-1bed728f2602 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_steps_invalid_duplicate [0.078783s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'ae06600a-fa37-4da8-8a88-ce84ce992559', '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-e5c836f4-ba4d-49d8-9477-9f80f8fae5d1 X-Openstack-Ironic-Api-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.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.329593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.045046s] ... ok {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail [0.134878s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.045418s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_164_service_cannot_change_provision_state [0.126407s] ... 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-4e3ee17b-e7f7-4ff5-a13f-362457597787 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.051328s] ... ok {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices [0.082818s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.062654s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.056004s] ... ok {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device [0.106471s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.186005s] ... 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-755115ea-6098-45bd-983c-2bc7e2c34b3d X-Openstack-Ironic-Api-Maximum-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_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track [0.271448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.053584s] ... ok {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked [0.086086s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.052836s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.044219s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid [0.048023s] ... ok {3} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail [0.114475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.204413s] ... 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-10f8cb32-a722-4d53-8d90-92e8edb7c78a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid [0.053013s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok [0.251645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found [0.049899s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id [0.045119s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found [0.065273s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_167_lessee_admin_can_set_provision_state_clean [0.199297s] ... 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-e98ccfd2-3cff-49a6-a203-b0273c25d272 X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_utils.TestObjectToDict.test_fields [0.044159s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current [0.253597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.controllers.v1.test_utils.TestObjectToDict.test_links [0.058730s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args [0.047471s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.296140s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.186445s] ... 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-dae98869-862a-42b4-905f-da51f1b8ddd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes [0.065173s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.067870s] ... ok {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task [0.263545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.095586s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_owner_member_can_set_provision_state_service [0.188717s] ... 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-9791dfa0-0e6e-429f-94a1-dbc4fea1744e X-Openstack-Ironic-Api-Maximum-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}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.062648s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.040972s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.044796s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.354561s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing [0.233296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_170_owner_reader_cannot_set_provision_state_service [0.171386s] ... 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-cc30d069-02b5-4a5c-a2d1-1d6013ad5f04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.054524s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.048882s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.046944s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.042383s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.045502s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.238875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_171_lessee_admin_can_set_provision_state_service [0.242024s] ... 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-f70a00a7-b4c4-404a-b4e2-77a3050df65b X-Openstack-Ironic-Api-Maximum-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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked [0.258124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.048629s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume [0.116777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a6494823-a112-4618-9a30-831f76e5cd1c 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-4462edca-39fe-4c3c-9ee7-057895b011aa 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-4d890f82-210c-421c-812b-c79f8ddadbb2 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-815c87e2-b4ee-494c-924e-a117767f4ccc 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-f2b6a4cf-3703-429d-9253-99fc157e841f 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-44b22fcf-702d-453b-bf5a-38bd43b7fcfb 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-55b1f04f-9eb3-48f7-92ce-782db759f8c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": []} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_172_lessee_member_cannot_set_provision_state_service [0.172414s] ... 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-bbc034fb-0433-484a-8c09-15844f2f81ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.081326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c7f40683-e88d-429e-b5c6-5239ce29ce86 X-Openstack-Ironic-Api-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.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps [0.235935s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid [0.244562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_173_owner_admin_can_set_raid_config [0.174010s] ... 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-88edb821-0c12-4e64-afad-672fd4d4dbe4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_volume_target.TestDelete.test_delete_volume_target_byid [0.134619s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-fe4ab01d-ed1f-451d-b906-a33d76a421b6 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.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_bios_boot_mode_fails [0.119772s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.089905s] ... 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.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail [0.203293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_uefi_boot_mode_fails [0.119633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_174_owner_manager_can_set_raid_config [0.190461s] ... 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-18f8f511-84bd-456c-a5c3-7f293dac07a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.152114s] ... 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-a8b76e5a-d340-4d71-a5d0-193336b3bd96 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_lessee_admin_cannot_set_raid_config [0.163283s] ... 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-a1c7e88d-fa0a-4270-acad-bc44d4d417cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full [0.236752s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_volume_target.TestDelete.test_delete_volume_target_node_locked [0.149043s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-681c2aa6-e772-44d3-9f45-1250d31bcc8f X-Openstack-Ironic-Api-Maximum-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.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false [0.331114s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.164291s] ... 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-09d35457-3778-4981-8b8c-e80e6360434f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.140526s] ... 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-dc0628b3-509d-4c14-b2b0-b55cd802e438 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-487ff2cc-1579-45e0-9fc5-83070bed69a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning [0.216255s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_177_owner_member_can_set_raid_config [0.174733s] ... 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-c7275891-658d-4afb-9947-9d5ff5b03447 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.123577s] ... 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-b941e8d0-03c3-4043-8958-00b0bbe69d91 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-22T18:22:18.853004+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-4dc39449-36ed-493f-a3ee-ad92e78440df 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-22T18:22:18.853004+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_volume_target.TestPost.test_create_volume_target_error [0.100666s] ... 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-98c3f8ea-7342-4942-b81c-6ce6adb8f67e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_178_service_owner_can_set_raid_config [0.188039s] ... 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-ab4c0a44-f0a6-498d-ab22-9460a1afeb61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_179_lessee_member_cannot_set_raid_config [0.194215s] ... 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-c6ccef35-6e21-495c-9347-ffa0452ca084 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false_even_if_src_set [0.686324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy [0.702850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_180_third_party_admin_cannot_set_raid_config [0.206402s] ... 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-bb896bad-6145-4b9a-9024-2c823cc6ba8e X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.607427s] ... 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/2e0c1212-9f0b-4af6-b8d1-99962d1e8c79 Openstack-Request-Id: req-82849f2a-febd-4a20-8434-b29e3ed23dc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2e0c1212-9f0b-4af6-b8d1-99962d1e8c79", "created_at": "2025-05-22T18:22:19.559287+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/2e0c1212-9f0b-4af6-b8d1-99962d1e8c79", "rel": "self"}, {"href": "http://localhost/volume/targets/2e0c1212-9f0b-4af6-b8d1-99962d1e8c79", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/2e0c1212-9f0b-4af6-b8d1-99962d1e8c79 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb68edc2-6d88-46a7-a196-364b8c184581 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2e0c1212-9f0b-4af6-b8d1-99962d1e8c79", "created_at": "2025-05-22T18:22:19.559287+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/2e0c1212-9f0b-4af6-b8d1-99962d1e8c79", "rel": "self"}, {"href": "http://localhost/volume/targets/2e0c1212-9f0b-4af6-b8d1-99962d1e8c79", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled [0.184427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.306479s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_181_service_cannot_set_raid_config [0.181743s] ... 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-3cebf0e8-3446-45ac-b2f6-c549580bacbc X-Openstack-Ironic-Api-Maximum-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.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.086833s] ... 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_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format [0.081542s] ... 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-3e91d3e7-2017-45d3-b637-b0a22627cf2c X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.095733s] ... 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-bc90fb19-5094-43b2-99d9-64dd55517c74 X-Openstack-Ironic-Api-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.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_none [0.256752s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_182_owner_admin_can_get_console [0.294707s] ... 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-5fe09dbc-ae85-485b-868b-abb907a6e748 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.088640s] ... 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-c97b50ed-9c2c-4b6a-8c40-80076aff0b26 X-Openstack-Ironic-Api-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}"} {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled [0.379226s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/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_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.114482s] ... 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-62525543-6881-4479-9416-b6bf7e36227a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console [0.151656s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_request [0.313285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.133485s] ... 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-b94b5ceb-3648-4ad5-879b-23f0dd97dd19 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_manager_can_get_console [0.322530s] ... 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-69d13778-f0a4-4b24-a3dd-c67560dfef0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.ConsoleTestCase.test_get_console_disabled [0.120373s] ... ok {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.147349s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.219668s] ... 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-b400cf83-c8f6-4219-8af7-b3d762e8b5c9 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-22T18:22:20.412445+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-35916842-1c60-4aa8-a92c-d8d0602d0909 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-22T18:22:20.412445+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.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path [0.333530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.122330s] ... 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-f47cb2c9-cb03-4b2d-93f3-554c23c9e647 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-22T18:22:20.577237+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.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_service_can_get_console [0.318931s] ... 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-156d3abb-96a4-4940-9a05-a98bf4db25ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none [0.207689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_update_fails_on_invalid_boot_mode [0.061949s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_console [0.301032s] ... 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-d79705c9-9d92-4882-949d-da6d74ff1311 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.ConsoleTestCase.test_set_console_mode_disabled [0.449481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_failure [0.151962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin [0.262842s] ... 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-0e217731-b9b6-4874-a2a1-86dd4a0e623d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_186_lessee_manager_cannot_get_console [0.256637s] ... 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-54fcd68a-c73d-45d2-90a8-0aa7f390e7c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_inspection.TestContinueInspection.test_ok [0.168491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled [0.357766s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member [0.323644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0c7e4fe8-81f9-4ca5-8a90-222da6a5fc2b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_inspection.TestContinueInspection.test_ok_asynchronous [0.190744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_187_owner_member_can_get_console [0.257476s] ... 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-e1c8c341-68f2-4be8-a6e5-d5f1c7190ee3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.ConsoleTestCase.test_set_console_mode_start_fail [0.362237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer [0.309605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b349ba3-b15d-45a8-be7c-2bebb057c718 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_member_cannot_get_console [0.277520s] ... 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-5adc9f67-2d9e-4fb0-8c24-aa5d24c29933 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.369624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin [0.194539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c65caf1-07a4-4407-8987-5b97f16b2e0a 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-22T18:22:21.759017+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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.199918s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_189_owner_reader_cannot_get_console [0.301221s] ... 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-22c12d78-aa3c-4155-bc29-7abebb4e4ff8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.418661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member [0.189968s] ... 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-334cb9c9-997d-49f5-8caf-f9ceeef57363 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_validation_fail [0.166476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_190_lessee_reader_cannot_get_console [0.218343s] ... 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-0916444f-cb5b-475d-9b16-815dcb558d92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer [0.242646s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61b9a46b-805f-442a-b838-3f8f6d5b6e60 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-22T18:22:22.168090+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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.353749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_191_third_party_admin_cannot_get_console [0.183519s] ... 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-8a117411-b617-4a8e-adfa-13e8bf0c7b96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.275734s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin [0.276092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23320aa8-b8d2-4fbf-80f9-a2b85876f777 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-22T18:22:22.432250+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.test_acl.TestRBACProjectScoped.test_project_scoped_192_owner_admin_can_set_console [0.207227s] ... 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-1dacd2fe-61d1-4cc0-91eb-dde19eac8dae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.339674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated [0.259922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin [0.217818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f22ed531-91af-4dfc-9b1d-4e00fbbac914 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": "7746c9fa-bc68-4dde-adaa-854bde025eee", "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.test_acl.TestRBACProjectScoped.test_project_scoped_193_owner_manager_can_set_console [0.193385s] ... 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-54afacb6-08b9-45ae-b6ff-a16b9875ac6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin [0.193681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-88202d75-7167-428a-8905-184bc8516283 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": "b64e95ac-3138-4176-828c-19ce8633c8ac", "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.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort [0.251714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.186754s] ... 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-803a9e0f-4e06-476b-a44b-202749bb700b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.384002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin [0.182115s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aea46a4d-9da5-4963-a7fc-05c849263a33 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-22T18:22:23.101772+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-22T18:22:23.103030+00:00", "updated_at": "2025-05-22T18:22:23.119012+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": "4e7bfb01-eb91-4f19-890d-f26fef967f0d", "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": "4e7bfb01-eb91-4f19-890d-f26fef967f0d", "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-22T18:22:23.146747+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.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_manager_cannot_set_console [0.179979s] ... 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-a2f2abd2-f047-4b28-aaea-4958cd8a3b67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step [0.356524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.308325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member [0.182633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2189e805-4672-479b-b1c5-72e2144e154b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer [0.200956s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f2c9e635-aa72-439b-af0e-941426b7e80f 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-22T18:22:23.473343+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-22T18:22:23.474581+00:00", "updated_at": "2025-05-22T18:22:23.489442+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": "999e3ccb-deb2-4f29-bb41-54c8b75a00e6", "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": "999e3ccb-deb2-4f29-bb41-54c8b75a00e6", "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-22T18:22:23.525834+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked [0.323116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.419075s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoNodeCleanTestCase.test_continue_node_clean_manual [0.220150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin [0.352987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-189a64cc-0b0c-41d1-9156-8376b781ed95 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-22T18:22:23.688320+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.test_acl.TestRBACProjectScoped.test_project_scoped_196_owner_member_can_set_console [0.806152s] ... 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-beb41d3a-6678-45c9-bd7c-0fa3efb079ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.306034s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member [0.219607s] ... 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-2ad5874a-9a0c-4e9b-aff9-4fff7f38b283 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.311785s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_197_lessee_member_cannot_set_console [0.197877s] ... 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-707fb79a-9714-4f1b-a5f0-79e86a49272a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer [0.215252s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0146f746-fda6-4b8d-ab75-f6c800caef79 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-22T18:22:24.280247+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.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_service_can_set_console [0.210639s] ... 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-2980e38d-c914-4d7f-9069-010f38cbee34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.378757s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.298816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_199_service_cannot_set_console [0.304770s] ... 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-2d9c1a59-7674-430d-8e9b-f3f7ad1216a8 X-Openstack-Ironic-Api-Maximum-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.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.259972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.403313s] ... 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-c6ff8b6c-f8cd-4f07-8a7b-f0b78a083b2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.372497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_200_owner_admin_cannot_get_vendor_passthru_methods [0.206491s] ... 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-944620ce-b649-4090-acd6-46fb3c8adcf3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.217809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member [0.198352s] ... 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-74852745-11bc-47c7-b4dd-310f7dfd024b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_201_owner_manager_cannot_get_vendor_passthru_methods [0.171082s] ... 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-867e3200-ceaf-4dae-9f1f-cf97f71853c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.182355s] ... 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-327323da-c90b-4973-90f8-17eb2c0e1ddf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.203301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.453653s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_202_owner_service_cannot_get_vendor_passthru_methods [0.195316s] ... 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-64fbb5e1-9cb1-441a-b45f-4cf48db9393e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.231501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7c7bc5ea-117f-47b3-8a9b-94a4fb69faee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.228505s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_203_owner_member_cannot_get_vendor_passthru_methods [0.222989s] ... 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-62c2ab05-eedb-4a19-9f4c-736600f2e851 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member [0.193598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-41aea338-4297-4967-83f3-66faee7f2c5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.231279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.353789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_204_owner_reader_cannot_get_vendor_passthru_methods [0.186825s] ... 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-026110ca-a462-45b5-9ed5-538f9bc8973b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.236994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a747b0ad-7e85-46bb-b57d-72302a49aad7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.test_acl.TestRBACProjectScoped.test_project_scoped_205_lessee_admin_cannot_get_vendor_passthru_methods [0.201186s] ... 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-a146d889-d3b9-4a9f-8a14-9968f2ae24c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin [0.183304s] ... 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-beb191b7-a737-4392-b77e-ba611ed7ec37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_206_lessee_manager_cannot_get_vendor_passthru_methods [0.226572s] ... 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-a0cf4007-a9b9-4fc2-9576-9808f41408a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member [0.223600s] ... 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-3a819fc2-2dd0-4bfd-bd81-4a4d84f03189 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.697060s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_207_lessee_member_cannot_get_vendor_passthru_methods [0.207351s] ... 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-57577db0-7a53-4b00-8510-edf924108a1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer [0.189095s] ... 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-5cbb7a5b-8e38-4069-bdbb-25631abee333 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current [0.825572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.174738s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_208_lessee_reader_cannot_get_vendor_passthru_methods [0.191887s] ... 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-45578f6d-8ed2-4c5e-a65d-5fae3ffbf711 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin [0.277711s] ... 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-efcd0fbe-048e-43ac-88c0-2a4dbef4f465 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_exception_in_background_task [0.254578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.432277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_209_owner_admin_cannot_get_vendor_passthru [0.405122s] ... 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-e409b4e1-3f24-4d4e-87a0-48302a3c7519 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing [0.270952s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member [0.337752s] ... 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-67eca5e7-5470-4c45-a5c5-9fff55f7f12d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_210_owner_manager_cannot_get_vendor_passthru [0.230529s] ... 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-1e08c684-fa87-4cba-bd56-702a437c226e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_automated [0.338827s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_node_already_locked [0.351177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_manual [0.188529s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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_211_owner_service_cannot_get_vendor_passthru [0.348819s] ... 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-e985d078-3969-47e3-a809-a5f4a602a13b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.DoNodeCleanTestCase.test_do_provision_action_unlocks_deploying [0.216421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.HeartbeatTestCase.test_heartbeat_invalid_agent_token [0.124613s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-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_212_owner_member_cannot_get_vendor_passthru [0.299173s] ... 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-eb5b0650-7c41-441c-a997-f0f537f462db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid [0.477376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token_older_version [0.118406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer [0.927081s] ... 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-db210774-85a2-44c2-a8e1-b5e5d907394a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_newer_version [0.122085s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-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.222952s] ... 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-7d6d9884-2a07-483b-a896-91a0aebdd87a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail [0.284761s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.HeartbeatTestCase.test_heartbeat_tls_required [0.128418s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.222187s] ... 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-94eea6ff-25f9-4bd8-81b6-c30f529a6567 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_214_lessee_admin_cannot_get_vendor_passthru [0.172275s] ... 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-d3606fbf-819f-40a5-ad15-04d0f4c13324 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.HeartbeatTestCase.test_heartbeat_with_agent_token [0.122352s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-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.187153s] ... 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-e43dc9d7-9de5-4fe2-b2b6-d0a85560b86b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.HeartbeatTestCase.test_heartbeat_with_agent_verify_ca [0.142650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full [0.309735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member [0.230045s] ... 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-310d736e-fc70-404a-a135-589593fee2b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_216_lessee_member_cannot_get_vendor_passthru [0.165565s] ... 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-3e5934d0-f9f6-4b34-b77d-60b52cc3ebcc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.HeartbeatTestCase.test_heartbeat_with_agent_version [0.139718s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/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.ContinueInspectionTestCase.test_continue_ok [0.186859s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.HeartbeatTestCase.test_heartbeat_with_no_required_agent_token [0.105900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.244390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-11a9e130-5a8d-450b-a1ce-eb7be627f300 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_manager.ContinueInspectionTestCase.test_continue_with_discovery [0.131174s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.184447s] ... 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-dea31e8b-4a75-4df8-ba9b-05ededb00c1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.183636s] ... 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-87201599-4e9e-410e-9c4b-365e27d7f68b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_218_owner_admin_cannot_post_vendor_passthru [0.177343s] ... 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-78fc2a88-c67d-4028-8ec0-820689276659 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ContinueInspectionTestCase.test_wrong_state [0.193436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.HeartbeatTestCase.test_heartbeat_with_required_agent_token [0.288642s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/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.CreatePortTestCase.test_create_port [0.116661s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.185206s] ... 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-189c312c-5c0f-4f76-a629-dfb024e524de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_219_owner_manager_cannot_post_vendor_passthru [0.177886s] ... 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-f47f2161-b7f1-48c4-9e1d-0eb259215674 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.CreatePortTestCase.test_create_port_mac_exists [0.110777s] ... ok {3} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_agent_version_anaconda [0.248894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.181109s] ... 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-2ed5a36a-ccc1-41f4-828b-aeb341902669 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.083675s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_owner_service_cannot_post_vendor_passthru [0.217102s] ... 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-f9b2648f-2fc4-46cb-9138-364636bcc22c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.093228s] ... ok {3} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_version [0.170867s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.186828s] ... 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-fb0c70db-2cb1-4100-b57e-ad3cfb19584a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.IndicatorsTestCase.test_get_indicator_state [0.089586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.201496s] ... 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-709f750e-7d7c-4bd7-9e9a-3525305578fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.IndicatorsTestCase.test_get_supported_indicators [0.076208s] ... ok {3} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state [0.055828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.030995s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.033390s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.040089s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.299022s] ... 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-b6f393dd-fa5a-494a-8c39-a65e1f4c5a0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.038269s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.403969s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.033234s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.042378s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.029306s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_owner_reader_cannot_post_vendor_passthru [0.344600s] ... 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-852727fd-fe78-4dfc-b4d6-4c222fd38f3e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.043632s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.153667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.035502s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.029784s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.038574s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.066032s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.148463s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.323728s] ... 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-863cb36c-8887-4bc8-b582-8234fc8163b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.DestroyNodeTestCase.test_destroy_node_associated [0.102929s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.311189s] ... 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-dccafb5e-efeb-4944-83d0-a523d474554b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.DestroyNodeTestCase.test_destroy_node_broken_driver [0.124201s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.263557s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.034952s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.039846s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.136448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.032484s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.362030s] ... 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-5491816c-6337-4310-9ea0-596dd753514e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.039152s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.037479s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_lessee_manager_cannot_post_vendor_passthru [0.376875s] ... 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-c6c0a8d1-5e8e-4ad6-8c32-34c22e905c86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.DestroyNodeTestCase.test_destroy_node_console_enabled [0.130532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.147076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.288581s] ... 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-dbdbdf11-a78d-486c-b34f-1a936722c3cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.239476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.226992s] ... 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-0cbac638-6382-405e-abda-597bfc83adab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.DestroyNodeTestCase.test_destroy_node_power_off [0.121971s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.187925s] ... 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-b3e187bc-40c4-48e1-862c-f4955c2c19aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_226_lessee_reader_cannot_post_vendor_passthru [0.172087s] ... 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-f9909c7f-7313-4b3f-a0ad-84c35785cdbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.300422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.205680s] ... 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-f93c0d77-13e3-4b84-a6ce-be0ae991aa6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_227_owner_admin_cannot_put_vendor_passthru [0.221191s] ... 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-ff55ea45-a355-40d5-9022-358d371d3ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.DestroyNodeTestCase.test_destroy_node_protected [0.495877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.208587s] ... 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-5968fd0e-8910-499c-955a-c0a5630dcf9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_228_owner_manager_cannot_put_vendor_passthru [0.191631s] ... 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-ed6ac467-3b0c-4392-b300-f7058f72d093 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.359709s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.199726s] ... 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-8ba02d44-71c8-4cad-a5fc-4e3b78fa8dd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.247521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.251835s] ... 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-53fc4923-58e7-45c2-97a1-58bc39a3b6f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin [0.132636s] ... 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-d59e52c1-7a32-4ec9-87cd-c5390e607aab 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.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member [0.089348s] ... 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-9c55d10f-8ed4-4e07-960e-1c51333e2a77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.439714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer [0.096665s] ... 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-5073c4b3-00a5-456c-9055-8f7fcefa7adc 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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.332406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_230_owner_member_cannot_put_vendor_passthru [0.316083s] ... 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-718aadf4-350f-4df0-960b-329a2acb35dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin [0.093452s] ... 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-5acb0881-643e-4c9c-bf94-b6ba77a1376b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.249705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation [0.233186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member [0.252184s] ... 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-2a1c387e-12b9-42a2-b1ae-f0c06857f7f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.426606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.635299s] ... 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-bfee4fe7-f16d-4dd0-936c-69624d796ed1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer [0.358823s] ... 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-d2c143d4-51bc-4b6c-bd48-187501981b79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.DestroyNodeTestCase.test_inventory_in_swift_get_destroyed_after_destroying_a_node_by_uuid [0.442376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_232_lessee_admin_cannot_put_vendor_passthru [0.111676s] ... 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-8e754532-bbc5-4559-b549-3d9ffc84dc26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.180592s] ... 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-ee745b51-598f-40b5-aff7-0442cfd308cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.MiscTestCase.test__mapped_to_this_conductor [0.305530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_233_lessee_manager_cannot_put_vendor_passthru [0.214382s] ... 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-abfa2317-af47-4750-870a-3d85e03a332e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.127841s] ... 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-0e78e0c1-13f4-4dca-b6f1-edc9dd507f69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_maintenance [0.359273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.MiscTestCase.test_get_node_with_token [0.197204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.MiscTestCase.test_iter_nodes [0.081076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.212639s] ... 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-a2e3e0fd-33b1-4ffd-b9f3-7d0269f3ab0b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_234_lessee_member_cannot_put_vendor_passthru [0.280399s] ... 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-981de127-e73c-4d2c-a539-b029a861c6c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.MiscTestCase.test_iter_nodes_shutdown [0.071137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_locked [0.054237s] ... ok {3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_set [0.038921s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_not_maintenance [0.322364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.071811s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.253074s] ... 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-65ac4113-cde6-4680-a42b-16f783112e77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.051942s] ... ok {3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.046538s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_reader_cannot_put_vendor_passthru [0.300742s] ... 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-cc367a6e-a5d9-45d0-b4bd-2bd78baee800 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.192665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.051523s] ... ok {3} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.040633s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.130865s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.232389s] ... 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-6e23361b-8b64-430e-9e18-f817fb575bb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass [0.116718s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.249794s] ... 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-553f3b2f-0eea-4c9d-a665-7d0aa0dc6394 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config [0.107438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.236480s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass [0.105538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.339448s] ... 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-7736f55e-6e88-4124-8764-e69564fbdf12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_owner_manager_cannot_delete_vendor_passthru [0.275219s] ... 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-e8b2324d-9448-4015-9125-89276a8309d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days [0.188453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.259491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work [0.160217s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin [0.246428s] ... 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-418240f7-a620-4f66-9155-fc1e0b59c326 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.109851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_238_owner_service_cannot_delete_vendor_passthru [0.311451s] ... 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-078cadb1-0cc7-43d7-afc4-bc672a8f599d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.DoNodeInspectAbortTestCase.test_do_inspect_abort_state_set_by_driver [0.164711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor [0.212959s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member [0.250666s] ... 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-1d9b2f4d-7abf-466f-951b-ad74eddabd04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.072352s] ... ok {3} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.054269s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_239_owner_member_cannot_delete_vendor_passthru [0.275953s] ... 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-05b4fd98-c9da-4408-9a26-188a2b5c8cb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.065171s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.235964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer [0.186202s] ... 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-54b13148-e324-41cf-8592-1a6c47efc38c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.059051s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.223151s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.398871s] ... 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-b2d77f22-d420-4b6c-8b69-46ecb80fc59a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin [0.368810s] ... 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-7a1f030b-3620-465e-a46d-674f6d1e7ef2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.291901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/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.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.548801s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_lessee_admin_cannot_delete_vendor_passthru [0.284079s] ... 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-dfd44720-7347-44be-862c-11e8d734a2aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member [0.282608s] ... 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-5d8d6ed1-b828-47a7-9906-08a00b34d19b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_242_lessee_manager_cannot_delete_vendor_passthru [0.193129s] ... 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-a4a5b645-0dc0-4824-8828-356bde38422b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.SensorsTestCase.test___send_sensor_data [0.250496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer [0.177854s] ... 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-25f90553-0bf5-4abb-afad-e94e3e7f212a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.340092s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/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.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.118987s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_delete_vendor_passthru [0.205481s] ... 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-8edb4847-fdd3-4dce-b8a9-d8def8a3f745 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin [0.199816s] ... 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-2589c1fb-5d7c-48eb-8850-d82e9993612d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.057811s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.035735s] ... ok {3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled [0.278108s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.037303s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.036831s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.042520s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_lessee_reader_cannot_delete_vendor_passthru [0.222329s] ... 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-1e3eb35a-85d2-4725-a391-7706922531af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.030940s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.032371s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member [0.243903s] ... 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-160d7bb4-c239-44d7-a3fe-5a85359ed0f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.048965s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed [0.047428s] ... ok {3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers [0.244975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_245_owner_reader_get_traits [0.183144s] ... 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-cfe8e19c-f2ac-445d-bc36-7eec30421086 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.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_get_observer [0.173295s] ... 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-b589deef-c34b-40f1-af3d-8fbc3d0f8ba5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.NodeInspectHardware.test__check_inspect_wait_timeouts [0.146779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/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.SensorsTestCase.test___send_sensor_data_one_worker [0.227710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.116238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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_246_owner_reader_get_traits_service [0.227855s] ... 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-c35e4476-81f0-41ff-8dcf-56660f934829 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": []} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_lessee_reader_get_traits [0.209537s] ... 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-8c762d24-5168-4c49-aad9-00c72586f050 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.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all [0.245230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_248_third_party_admin_cannot_get_traits [0.184920s] ... 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-c1432d8e-1626-400c-891b-9da0246832ce X-Openstack-Ironic-Api-Maximum-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.NodeInspectHardware.test_inspect_hardware_validate_fail [0.454280s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_admin [0.675960s] ... 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-cf8dc2e2-00dc-4331-9c41-f2f5febffbb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.SensorsTestCase.test__filter_out_unsupported_types_non [0.251650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_249_owner_admin_can_put_traits [0.213214s] ... 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-d91b254c-8ca5-4149-8797-63c7a496332b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.174965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_member [0.185555s] ... 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-9c65e066-3c5f-4e33-8e3f-0da3fb7cfc2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_manager.RaidTestCases.test_get_raid_logical_disk_properties [0.079032s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config [0.071487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.SensorsTestCase.test__filter_out_unsupported_types_part [0.258307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_250_owner_manager_can_put_traits [0.195356s] ... 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-f5422701-12a4-4e19-9246-79c76918c774 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.RaidTestCases.test_set_target_raid_config_empty [0.076900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_states_console_put_observer [0.185848s] ... 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-83da4e57-c441-4c58-94a4-55fce797f4b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [0.073441s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.028338s] ... ok {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.023956s] ... ok {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.023773s] ... ok {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.029572s] ... ok {3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__sensors_conductor [0.249293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.030093s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_owner_service_can_put_traits [0.254247s] ... 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-4acf0a8f-e38e-45fe-a1c0-ca2d53b4091d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestIndirectionApiConductor.test_object_class_action [0.023513s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.237925s] ... 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-9d7d69fe-39ef-4c5d-8bb7-a56acd09a6eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestIndirectionApiConductor.test_object_class_action_on_object [0.023283s] ... ok {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.023625s] ... ok {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.094707s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_active_node [0.052087s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.SensorsTestCase.test_send_sensor_task [0.262477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_252_owner_member_cannot_put_traits [0.270777s] ... 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-68b013ae-22ec-43b9-870a-2766a058be74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.063706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.265783s] ... 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-d43eca55-14ef-4262-900a-cdf1e2bd6482 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.059416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_deleting_state [0.084442s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.039632s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_admin_cannot_put_traits [0.218886s] ... 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-69a7244a-48a9-43b3-b0fe-9160b6db2fa3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.188162s] ... 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-f7e9769b-85a0-40e8-a804-e1cd958f70f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.SensorsTestCase.test_send_sensor_task_maintenance [0.264624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.077749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_physnet_maintenance [0.158498s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.209640s] ... 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-035fa52d-948f-4667-9204-edf852b20f92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_254_lessee_manager_cannot_put_traits [0.218181s] ... 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-f2cc7c2c-88a8-44dd-a5c6-e0e32c57cd1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management [0.304924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.127866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_physnet_validation_failure_conflict [0.066578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.227012s] ... 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-2e34dbc1-096a-4bd0-ba34-7a92f7f991d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_255_lessee_member_cannot_put_traits [0.245040s] ... 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-d992a705-2607-4b33-b005-574c3c4efc9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.073888s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_port_changed_failure [0.096756s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.SensorsTestCase.test_send_sensor_task_shutdown [0.250863s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.066494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.221889s] ... 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-d4d43faf-65b3-4e66-8bdc-e9b49979347a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_256_third_party_admin_cannot_put_traits [0.242966s] ... 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-c6a88382-4769-4884-8070-7fccf285903a X-Openstack-Ironic-Api-Maximum-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.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.081828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.259314s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.164750s] ... 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-53d63ba5-d625-4fc7-bbba-f855166b3426 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_to_node_in_inspect_wait_state [0.154093s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_257_third_party_admin_cannot_put_traits_service [0.196263s] ... 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-6c4b96a4-7083-4798-97dd-0e2a28a67789 X-Openstack-Ironic-Api-Maximum-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.UpdateVolumeTargetTestCase.test_update_volume_target [0.119660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.167356s] ... 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-536ade56-9fbf-4dfe-b3db-a01d2b46c8f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.216031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.173314s] ... 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-5408ad8b-5c3f-4c2b-84eb-583812296b4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.161497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.189887s] ... 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-5194d105-7fe4-417e-99da-c94d33718b11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.099543s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_259_owner_manager_can_delete_traits [0.214275s] ... 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-2b7b0549-9b4d-4392-9322-5c5f412ffe92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.325105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.119021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.245420s] ... 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-c6d2d699-e62a-4252-94c4-38394819bc34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.099674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_260_owner_member_cannot_delete_traits [0.216519s] ... 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-b50df808-5efd-4b28-a774-5983cec31293 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.118830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.244103s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.155375s] ... 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-206298f0-dbf5-4550-9d21-e93af3d5ad6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_261_lessee_admin_cannot_delete_traits [0.155707s] ... 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-afb711ed-55e5-4f5d-ad46-b446d191aa93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.120530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.169145s] ... 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-bd73287a-1aa9-4a4f-b489-c098bbfe9a34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_262_lessee_manager_cannot_delete_traits [0.171362s] ... 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-6570416c-eee6-4f08-9fd7-a0ff12b8308d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.151205s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_add_node_traits [0.060054s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.164129s] ... 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-834bc626-2007-41d0-bf4b-6a90ec3079d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.066885s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.389511s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_263_lessee_member_cannot_delete_traits [0.161014s] ... 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-540a9883-d9bb-4292-85d8-c7191a56c52e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_can_send_create_port_False [0.052858s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True [0.064427s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.200783s] ... 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-00fd7737-81c4-4934-bf6c-32c4ff7e2ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.064506s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_264_third_party_admin_cannot_delete_traits [0.198995s] ... 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-74e2f070-36ba-4b2d-8786-46dabeff64a4 X-Openstack-Ironic-Api-Maximum-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_rpcapi.RPCAPITestCase.test_can_send_rescue_true [0.067680s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_boot_mode [0.072053s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.190035s] ... 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-f5dc14b2-f0a8-41df-b5d0-338dc3412c3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_change_node_power_state [0.072507s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.404007s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_265_owner_admin_can_put_custom_traits [0.204218s] ... 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-83c9a1c9-a98e-468e-bc69-bb6afcba8eeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_change_node_secure_boot [0.061032s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.069586s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_admin [0.213508s] ... 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-40be5095-2bba-4d38-8739-27ab0735ddc3 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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.081515s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_service [0.086096s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.070031s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.388996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_rpcapi.RPCAPITestCase.test_create_node [0.074699s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_member [0.244533s] ... 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-9114a2c1-65f1-41f6-b2fc-21aeb91a067e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_get_observer [0.207949s] ... 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-40726108-8388-4552-8c7f-fde294fb219f 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_266_owner_manager_can_put_custom_traits [0.723568s] ... 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-1c56e10c-263d-480a-adf9-396b4eefeba4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.379644s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_admin [0.177813s] ... 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-c0f84e43-0cdb-43e7-b77b-774f3da98aa5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_create_port [0.493564s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_member_cannot_put_custom_traits [0.175880s] ... 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-234a93b7-69c7-4dcb-a5aa-858a6ddac2c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_destroy_allocation [0.066472s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.058933s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_member [0.227685s] ... 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-4bb5d6ce-3903-4715-8c3c-15fb9fc7654e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_rpcapi.RPCAPITestCase.test_destroy_portgroup [0.056731s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.059716s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_admin_cannot_put_custom_traits [0.244000s] ... 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-3fbf1159-5f03-4479-b9a1-220562eb98b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.073521s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_put_observer [0.195088s] ... 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-33d4da9b-58b2-4382-b0e4-c6d0d91854aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_do_node_clean [0.062504s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_lessee_manager_cannot_put_custom_traits [0.177073s] ... 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-07b27a49-b422-418a-8abd-c09dfecc69cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_do_node_deploy [0.093771s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps [0.062813s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_admin [0.231670s] ... 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-f51432e4-3fbf-4016-8ccc-69263f8a52c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_do_node_rescue [0.057413s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.770120s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_rpcapi.RPCAPITestCase.test_do_node_service [0.060588s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.058224s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_put_custom_traits [0.318681s] ... 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-61f382f5-54f5-4d06-b697-07726c7e2e72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.062919s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.210132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.RPCAPITestCase.test_driver_vendor_passthru [0.084601s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_member [0.326816s] ... 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-047dfd46-cdd0-4f0f-bc74-41f117198259 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_rpcapi.RPCAPITestCase.test_get_boot_device [0.068075s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.067471s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_put_custom_traits [0.299875s] ... 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-e3c0688f-b0a7-4c90-83c0-40dd4efc5bdf X-Openstack-Ironic-Api-Maximum-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_rpcapi.RPCAPITestCase.test_get_console_information [0.071217s] ... ok {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.236566s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.RPCAPITestCase.test_get_driver_properties [0.059201s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_delete_observer [0.255782s] ... 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-1779bf01-b491-49ba-9533-b3c7a6d4db33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.095223s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_get_vifs [0.195504s] ... 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-a91ca72a-069f-47de-9e4a-533f7bfd0502 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_get_indicator_state [0.089865s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.168987s] ... 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-b03fa86e-8ac7-4968-bfc0-9ace6372f74e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.320593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.087698s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_get_vifs [0.176381s] ... 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-6dae7f44-cf7c-40ae-812a-fbc09f25e9fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_get_node_with_token [0.098797s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_member [0.185571s] ... 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-0796e350-cbc7-4b46-a3aa-51994c7502b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.084674s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_get_vifs [0.176209s] ... 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-dfeddcb8-2b01-48d3-b963-e18c2ea58555 X-Openstack-Ironic-Api-Maximum-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_rpcapi.RPCAPITestCase.test_get_random_topic [0.103630s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.188492s] ... 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-f2df8e51-f0bc-4d5f-8c42-18c1dfaeb5cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.357488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.RPCAPITestCase.test_get_random_topic_no_conductors [0.074056s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_admin_can_post_vifs [0.174496s] ... 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-0a7e040a-8229-4bbb-8937-cea50ff76b5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.077360s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.182680s] ... 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-53a18809-f889-4da3-9fbf-6a92e0b6ec5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_get_supported_indicators [0.115655s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_service_can_post_vifs_for_own_project [0.176618s] ... 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-4ae7141d-a79e-43e7-aafc-3cc6a44a79cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.095207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.170773s] ... 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-b3fac8a8-6106-4c7a-a7c2-2b391a2cd9ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.404036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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_277_service_cannot_post_vifs_for_other_project [0.189072s] ... 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-df46c2ba-a362-4225-92ce-5f403ccd35a2 X-Openstack-Ironic-Api-Maximum-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_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.096992s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.107528s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.233714s] ... 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-01aa7031-2c30-43d8-9607-67447fdb6eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.112955s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_manager_can_post_vifs [0.291353s] ... 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-13966c7b-58b5-42c7-987b-97460d471cca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.094002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.417729s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_admin [0.250778s] ... 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-caa2f81e-3300-47e3-88a0-144a3ac2b347 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.118296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_lessee_admin_can_post_vifs [0.187093s] ... 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-e864bf54-2aa6-4740-aeda-eeddc69c47f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_heartbeat [0.098365s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_member [0.176879s] ... 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-d763e29c-7f20-42e4-962a-276460d91716 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.204964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_heartbeat_agent_token [0.105254s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_lessee_manager_can_post_vifs [0.196630s] ... 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-456e6291-50c9-4c07-9321-ce69bbbdeafc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_inject_nmi [0.113256s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_get_observer [0.182967s] ... 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-c23cb44b-2a2e-4b60-8ec4-6217a3fa89a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on [0.197035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_inspect_hardware [0.088092s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_owner_member_can_post_vifs [0.209359s] ... 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-8373d950-a084-4df1-bb5f-2a11863f9af9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_local_call [0.087466s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.169700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_admin [0.209910s] ... 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-6d3a3af9-158c-49f6-b862-b7333760714f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_local_call_expected_exception [0.101184s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_member_cannot_post_vifs [0.182638s] ... 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-f0756dcd-b200-4b15-9f4f-8a794faf7ce5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated [0.138875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_local_call_host_mismatch [0.082615s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled [0.088034s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled [0.092114s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_owner_reader_cannot_post_vifs [0.202487s] ... 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-80d53c61-a9b0-4ead-b360-875ca741dd39 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked [0.199671s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_local_call_with_rpc_disabled [0.078932s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast [0.077488s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.217903s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_local_cast_error [0.095771s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_lessee_reader_cannot_post_vifs [0.274071s] ... 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-c5be7a63-e412-4452-87b4-e6a67739d6ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.086685s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_member [0.675783s] ... 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-664b124f-a476-4626-9088-dfd8c88500b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.187765s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_object_action_invalid_version [0.091988s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.080036s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_third_party_admin_cannot_post_vifs [0.274364s] ... 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-f320a5a2-7525-4f40-b8b1-956f2732cc3c X-Openstack-Ironic-Api-Maximum-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.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.165329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_object_backport_versions_invalid_version [0.068007s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_post_observer [0.267130s] ... 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-a5046210-66ed-40f0-ba3e-9c5becc508af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface [0.066501s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_object_class_action_versions [0.093646s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.060673s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.090471s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_admin_delete_vifs [0.269039s] ... 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-5e8196af-0072-45e5-af2f-0bdbfa1d9284 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.124993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.RPCAPITestCase.test_remove_node_traits [0.074920s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.230695s] ... 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-13ab6fc1-5a9b-4e63-bca0-6b5d8ed6626d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.072323s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface [0.107295s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled [0.035680s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid [0.044499s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.032830s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_manager_delete_vifs [0.238298s] ... 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-e5580876-ea1f-4047-ae46-962cc8d32f50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_set_console_mode [0.043766s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.222861s] ... 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-0cbb2061-f49a-4fea-86f0-88eb43e41540 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_rpcapi.RPCAPITestCase.test_set_indicator_state [0.056670s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.054618s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.123735s] ... 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-b5882a54-f67a-47e0-9656-6875a3cee3ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_rpcapi.RPCAPITestCase.test_update_node [0.036570s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.039475s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.034914s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.089432s] ... 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-2b514a07-deb2-4bde-93d3-ee84ad173f81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_288_lessee_admin_can_delete_vifs [0.261121s] ... 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-e435b43d-7535-4620-8831-00cf9de10f9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_update_volume_connector [0.032770s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.034155s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces [0.038458s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_member [0.115242s] ... 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-fb75001d-816b-4016-bd23-4039fe4fb70a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_rpcapi.RPCAPITestCase.test_vendor_passthru [0.035644s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.030748s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.038388s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.091732s] ... 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-e9b8c086-d490-44f8-a091-fc24aaeba829 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_289_lessee_manager_can_delete_vifs [0.232449s] ... 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-1f1d9604-7ee1-46e6-9d50-405891fbbbfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_rpcapi.RPCAPITestCase.test_vif_list [0.053510s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_owner_member_can_delete_vifs [0.225810s] ... 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-8a6f2cd7-748e-4907-aa0c-fa6c757500cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.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. {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_lessee_member_cannot_delete_vifs [0.216568s] ... 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-44d1c48f-a320-4d60-a6c8-d861366fbec8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_servicing.DoNodeServiceAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.517781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_admin [0.182911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-025bc681-2b17-41af-90cc-3e468a937048 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_292_third_party_admin_cannot_delete_vifs [0.194608s] ... 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-fb8b755f-aa81-4c70-9fab-749fdc202c46 X-Openstack-Ironic-Api-Maximum-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_servicing.DoNodeServiceAbortTestCase.test__do_node_service_abort_tear_down_fail [0.147118s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_member [0.179600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3178cab2-f0db-4cbe-b856-be1a095fe720 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_early [0.132568s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_293_service_can_delete_vifs [0.211771s] ... 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-cca12597-c57c-4460-b0fd-eed69545f5c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_with_step [0.123048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_get_observer [0.185555s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66f1e40f-40b7-4081-b593-5aa0aad12d46 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_294_service_cannot_delete_other_nodes_vifs [0.188930s] ... 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-2624e3b5-1eee-4778-8d30-82d7f30cd1f8 X-Openstack-Ironic-Api-Maximum-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_servicing.DoNodeServiceTestCase.test__do_next_clean_step_automated_execute_fail [0.188510s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_295_owner_readers_can_get_indicators [0.182032s] ... 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-b2f9988d-9eea-446e-a0a0-72fa0e0cbee0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_admin [0.246105s] ... 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/f6ac51f3-42b4-45d2-ae5a-07db67f006ee Openstack-Request-Id: req-cf2d2f19-8f22-4ea3-ac0e-812f3e715c5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f6ac51f3-42b4-45d2-ae5a-07db67f006ee", "created_at": "2025-05-22T18:22:47.613072+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/f6ac51f3-42b4-45d2-ae5a-07db67f006ee", "rel": "self"}, {"href": "http://localhost/portgroups/f6ac51f3-42b4-45d2-ae5a-07db67f006ee", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/f6ac51f3-42b4-45d2-ae5a-07db67f006ee/ports", "rel": "self"}, {"href": "http://localhost/portgroups/f6ac51f3-42b4-45d2-ae5a-07db67f006ee/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lesse_readers_can_get_indicators [0.178079s] ... 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-c87a2b0a-d0ff-4bd4-81cb-015705c0e867 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_fail_in_tear_down_service [0.288909s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_member [0.226726s] ... 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-2cbdf532-ec36-47bb-a2b0-358bb22d66b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_297_third_party_admin_cannot_get_indicators [0.191175s] ... 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-328d8de8-91dd-45cd-a1be-345a91ba2d64 X-Openstack-Ironic-Api-Maximum-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_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_last_step_noop [0.178393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_post_observer [0.209316s] ... 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-c38939f2-0f85-4ed5-86a2-2aa4f193d962 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_298_owner_reader_can_get_indicator_status ... SKIPPED: API appears to be broken and should be patched outside of this work. {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_no_steps [0.233919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_admin [0.185430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56f05301-d7ce-44eb-af43-82d15ff4e033 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-22T18:22:48.201955+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_299_lessee_reader_not_get_indicator_status ... SKIPPED: API appears to be broken and should be patched outside of this work. {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_bad_step_return_value [0.204256s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_member [0.204325s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-81d2b054-1b35-4246-bba3-6c4bf66ce92c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_manual_last_step_noop [0.216211s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_allowed_state [2.952005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/ python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_detail_get_observer [0.248856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9029a40-041d-4dd8-b663-3181cd9e5d70 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-22T18:22:48.621321+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_servicing.DoNodeServiceTestCase.test__do_node_service [0.154276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.206930s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1d73f0c-2130-4dd4-b9f2-3c8e2de7f85f 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-22T18:22:48.863731+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_300_owner_member_can_set_indicator [0.656062s] ... 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-149eed1a-d1a8-4e4a-8b2f-d2a83b8e7b0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_servicing.DoNodeServiceTestCase.test__do_node_service_automated_network_validate_fail [0.163717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test__do_node_service_automated_power_validate_fail [0.166498s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_301_lessee_member_cannot_set_indicator [0.196000s] ... 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-f780b91c-e416-4b0b-ae01-959a89678400 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.477121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.297719s] ... 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-fa53c607-6a54-445f-98ce-28acf5e71582 X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_disable_ramdisk [0.170116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.184496s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_third_party_admin_cannot_set_indicator [0.222058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/bd5550a2-66e7-4e29-86c1-4ef850930340/management/indicators/component/magic_light WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-913ebe46-4c8e-4176-afa4-3a9b01030c0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node bd5550a2-66e7-4e29-86c1-4ef850930340 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.267098s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27a7cb74-e4ea-440d-a413-53642a601ebc 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-22T18:22:49.359965+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.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.126151s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver [0.064669s] ... ok {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_network_validate_fail [0.230014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_maintenance_set_false [0.064113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_maintenance_with_broken_interface [0.057861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_303_owner_reader_can_list_portgroups [0.293416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02220885-f608-465d-bde8-adedad3d1c3f 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": "0ee836f3-80ce-4854-a857-85b2026bafc2", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/0ee836f3-80ce-4854-a857-85b2026bafc2", "rel": "self"}, {"href": "http://localhost/portgroups/0ee836f3-80ce-4854-a857-85b2026bafc2", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.036031s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.035061s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.264446s] ... 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-66b727f3-2650-44c1-92d0-8dea5b97e209 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_servicing.DoNodeServiceTestCase.test__do_node_service_manual_power_validate_fail [0.201581s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_protected_set [0.087973s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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_304_owner_service_can_list_portgroups [0.206449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-187f512e-5328-4d6c-aca1-2779e66353e8 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": "7f7836b0-d3ed-45cc-99b0-f62777a9e806", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/7f7836b0-d3ed-45cc-99b0-f62777a9e806", "rel": "self"}, {"href": "http://localhost/portgroups/7f7836b0-d3ed-45cc-99b0-f62777a9e806", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset [0.119150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.DoNodeServiceTestCase.test__do_node_service_network_error_fail [0.220488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.251444s] ... 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-6aefa239-9370-4fb6-9748-80cd4d1e2548 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state [0.047137s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired [0.067170s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_lessee_reader_can_list_portgroups [0.255370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a201610-45ff-44af-bd86-f3a3de533210 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": "bb4f11fa-4e4b-4655-a7b8-fd156f9c08a3", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/bb4f11fa-4e4b-4655-a7b8-fd156f9c08a3", "rel": "self"}, {"href": "http://localhost/portgroups/bb4f11fa-4e4b-4655-a7b8-fd156f9c08a3", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set [0.115162s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.DoNodeServiceTestCase.test__do_node_service_prepare_service_active [0.255049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.259974s] ... 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-ab895eaa-7336-4b6c-952d-a1185e332e86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset [0.152713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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_306_third_party_admin_cannot_list_portgroups [0.180329s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c6f6ab6-e71f-4b5b-8df9-7e7c041e20fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": []} {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_fail [0.196216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.255051s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-58cd4c57-4e3b-4867-b49c-838d8fde9042 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_307_owner_reader_can_read_portgroup [0.210805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7703aca6-ed54-4571-9919-c387e340b8d4 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-22T18:22:50.503389+00:00", "updated_at": null, "address": "01:03:09:ff:01:01", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "magicfoo", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_wait [0.143942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.262811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4551ac35-665c-416a-a741-ce532ce0e9e6 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_308_lessee_reader_can_read_portgroup [0.224754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/f9a47293-1853-44b7-82ab-f04365d759f7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbeba097-304a-475b-8f6f-595587d2cf72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f9a47293-1853-44b7-82ab-f04365d759f7", "created_at": "2025-05-22T18:22:50.757937+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/f9a47293-1853-44b7-82ab-f04365d759f7", "rel": "self"}, {"href": "http://localhost/portgroups/f9a47293-1853-44b7-82ab-f04365d759f7", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/f9a47293-1853-44b7-82ab-f04365d759f7/ports", "rel": "self"}, {"href": "http://localhost/portgroups/f9a47293-1853-44b7-82ab-f04365d759f7/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_steps_fail [0.318512s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_with_reset_interfaces [0.616327s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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_309_third_party_admin_cannot_read_portgroup [0.208679s] ... 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-ed0ec04a-55c1-4849-bec9-21c6b83995ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service [0.101481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.278460s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5cd54b2b-9ad0-47eb-89aa-3a2fd9d0b596 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_servicing.DoNodeServiceTestCase.test_continue_node_service_no_skip_step [0.090886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_310_owner_admin_can_add_portgroup [0.192487s] ... 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/a5186ea6-fcc8-484f-b9bd-8431aff533bb Openstack-Request-Id: req-2510c422-2bdf-47e5-b567-2591ab257242 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a5186ea6-fcc8-484f-b9bd-8431aff533bb", "created_at": "2025-05-22T18:22:51.240537+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/a5186ea6-fcc8-484f-b9bd-8431aff533bb", "rel": "self"}, {"href": "http://localhost/portgroups/a5186ea6-fcc8-484f-b9bd-8431aff533bb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/a5186ea6-fcc8-484f-b9bd-8431aff533bb/ports", "rel": "self"}, {"href": "http://localhost/portgroups/a5186ea6-fcc8-484f-b9bd-8431aff533bb/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_admin [0.213534s] ... 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-4bdc9ed4-1c0c-49b2-8066-d51daf1cdced 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_311_owner_service_can_add_portgroup [0.128783s] ... 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/b89a6f4d-d2cd-4f45-9f84-8c3e6e3a5dc0 Openstack-Request-Id: req-8507e630-a7ae-4579-aae0-b87d413a85d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b89a6f4d-d2cd-4f45-9f84-8c3e6e3a5dc0", "created_at": "2025-05-22T18:22:51.382039+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/b89a6f4d-d2cd-4f45-9f84-8c3e6e3a5dc0", "rel": "self"}, {"href": "http://localhost/portgroups/b89a6f4d-d2cd-4f45-9f84-8c3e6e3a5dc0", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b89a6f4d-d2cd-4f45-9f84-8c3e6e3a5dc0/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b89a6f4d-d2cd-4f45-9f84-8c3e6e3a5dc0/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all [0.227550s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_resource_class_allowed_state [0.394113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_member [0.170899s] ... 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-e8367937-927d-4288-a1f2-3cdc55d54ef9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_312_owner_manager_can_add_portgroup [0.164020s] ... 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/35eb3e43-d2f7-4448-b42e-11e2f9138e6f Openstack-Request-Id: req-5726f842-9b9d-48f9-a4b1-8a6d671a701b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "35eb3e43-d2f7-4448-b42e-11e2f9138e6f", "created_at": "2025-05-22T18:22:51.547800+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/35eb3e43-d2f7-4448-b42e-11e2f9138e6f", "rel": "self"}, {"href": "http://localhost/portgroups/35eb3e43-d2f7-4448-b42e-11e2f9138e6f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/35eb3e43-d2f7-4448-b42e-11e2f9138e6f/ports", "rel": "self"}, {"href": "http://localhost/portgroups/35eb3e43-d2f7-4448-b42e-11e2f9138e6f/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_owner_member_cannot_add_portgroup [0.107658s] ... 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-00a33263-9a5c-42cf-93fb-a9686bd342db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all_disable_ramdisk [0.281730s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_314_lessee_admin_cannot_add_portgroup [0.089952s] ... 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-bdaa9b88-78e5-4f5f-b114-ebc2ff03e9fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_315_lessee_manager_cannot_add_portgroup [0.086036s] ... 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-2995846a-6517-4847-8e46-9d4334ae62d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_316_lessee_member_cannot_add_portgroup [0.128652s] ... 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-965eb122-6554-4dab-a079-d2be683c5cba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.592705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.DoNodeServiceTestCase.test_do_next_clean_step_collect_logs [0.344992s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_317_third_party_admin_cannot_add_portgroup [0.121936s] ... 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-2c942471-df42-44ae-b750-76d58d5bef45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.224197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.DoNodeServiceTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.203631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.160264s] ... 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-2bb9f523-377b-4ee0-9df7-2fc029e844ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_get_observer [0.795427s] ... 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-2e220501-4e93-4742-8f1c-fcf3e9857696 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.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.118081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.184617s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.197691s] ... 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-0dfea3fa-a3d5-490e-8de0-1fa9d2e8f95a 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-22T18:22:52.415116+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.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.158788s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_319_owner_manager_can_modify_portgroup [0.246932s] ... 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-d646faa0-9ce4-45fd-b9bb-aa52bc075d0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_servicing.DoNodeServiceTestCase.test_do_next_service_step_agent_busy [0.144930s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.098921s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.120654s] ... 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-13c1f7b9-bf80-47e8-b7a0-e74d50447d2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.094481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test_do_next_service_step_automated_first_step_async [0.144769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.133322s] ... 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-7b44572c-389d-464f-9ed3-93b0768542a3 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-22T18:22:52.664343+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_320_owner_member_cannot_modify_portgroup [0.235399s] ... 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-8049106a-662a-4e52-a05a-04400d3569cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.129414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_321_lessee_admin_cannot_modify_portgroup [0.174244s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/be647203-6a88-45bf-93fe-3af1104e6ed3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec6b188c-63fa-40b2-8ba3-b17a904a793c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_active [0.212736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_admin [0.256892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23cdcbfe-29de-4904-8503-46277bc81a8e 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_322_lessee_manager_cannot_modify_portgroup [0.109421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/006d2521-191a-4ed1-ab5b-5d1e589e77a9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a06809ac-7c7e-4def-bd9c-a0c670091f6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_323_lessee_member_cannot_modify_portgroup [0.110690s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/7fa0ffdc-c12c-4020-89df-5cea962d24f0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4c75b606-be80-4a1b-bdec-b33c111696b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_wait [0.235925s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_324_third_party_admin_cannot_modify_portgroup [0.086717s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/9b813886-df52-4f6a-b931-a4fbb6e20f2d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c48035bf-f3bf-4405-95d2-0e138c4e8784 X-Openstack-Ironic-Api-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 9b813886-df52-4f6a-b931-a4fbb6e20f2d could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_member [0.282805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fbb36c30-18b9-4451-adc9-17d737e82c16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.508688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_325_owner_admin_can_delete_portgroup [0.137720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d8ef6db1-271b-4431-8fc3-cdec5fa3d6e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_servicing.DoNodeServiceTestCase.test_do_next_service_step_manual_first_step_async [0.204544s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VirtualMediaTestCase.test_attach_virtual_media_http [0.152589s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_326_owner_manager_can_delete_portgroup [0.118804s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c5ae0a09-89ff-4f20-94b7-d91bc1f6fc2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_get_observer [0.246258s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b0a8bf9-e228-45b1-8127-5876d6ed5f0f 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_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot [0.204102s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_327_owner_member_cannot_delete_portgroup [0.128618s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0ccfe8d4-eae8-411b-87a7-1c1554520a2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_local [0.165363s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_328_owner_service_can_delete_portgroup [0.099495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cc19b8e8-066e-4bb3-8874-abb1d63b9d53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_admin [0.252543s] ... 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-76e4b007-243f-445d-a734-90b9618ce8a7 X-Openstack-Ironic-Api-Maximum-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.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media [0.176741s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_fail [0.227054s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_329_lessee_admin_cannot_delete_portgroup [0.101161s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6568124d-5faa-405f-b80c-bbca835f6ed4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6171484f-a83e-470f-83d4-10bb55dbe27a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_attach [0.125898s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_330_lessee_manager_cannot_delete_portgroup [0.149984s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/a6fe5ad2-d7d6-44b5-9555-fa8bbe0290a7 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4f5c1ef5-7024-4a31-95a4-fc6a5b51af29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_last_step [0.157138s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_member [0.174791s] ... 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-4326edf4-89b3-4702-9ed0-31e4a2ad2ccd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_post_observer [0.101157s] ... 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-411aafa4-2975-4430-a0e7-4a9896e0acca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_prepare [0.154134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test_do_node_service_steps_fail_poweroff [0.147396s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.197110s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/56acc777-0fe8-4e11-a5bd-c442eb8612d1 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3013ea82-4e31-4fc9-9c9b-260e5252f9b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_admin [0.130136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-62cd7a43-76c1-4927-bc5c-1870c6082428 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-22T18:22:54.180503+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_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps [0.154204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test__get_service_steps [0.121121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_member [0.091826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e6802b0b-f01d-4246-acf0-d06cdcd74599 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_third_party_admin_cannot_delete_portgroup [0.210185s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/2c4c8eba-4784-4279-8293-e5bc45bc5b8e GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-305bf554-4d9d-452d-8775-9531b4130fec X-Openstack-Ironic-Api-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 2c4c8eba-4784-4279-8293-e5bc45bc5b8e could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_detail_get_observer [0.098303s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da7e0852-fa16-4ea7-9fc4-af2c146dbde5 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-22T18:22:54.381405+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_steps.NodeServiceStepsTestCase.test_set_node_service_steps [0.145816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.172812s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_admin [0.111999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66f14e39-0129-4222-b66b-a61cddfc6704 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-22T18:22:54.472944+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_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait [0.129362s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps [0.141260s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.207757s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/4ecd1101-9d38-46ea-9359-3c9cb1f23813 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-62069698-c67c-4674-995d-0a3ad7b6111b X-Openstack-Ironic-Api-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 4ecd1101-9d38-46ea-9359-3c9cb1f23813 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_member [0.108982s] ... 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-2f51b102-f0d2-4ce9-a699-b12eb21b1396 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps [0.122336s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_get_observer [0.102579s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-207f78ba-4631-4f51-9057-3f2784eb113f 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-22T18:22:54.703587+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_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time [0.193283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.106880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.096496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_admin [0.178005s] ... 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-99af9390-8c9e-459a-a62e-82e12979fee7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time_to_long [0.165565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.042557s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps [0.111770s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.046370s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.047730s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_member [0.154226s] ... 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-d4ec745d-9a69-4e17-9e63-21c80a622ced X-Openstack-Ironic-Api-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.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.049609s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps [0.154371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_patch_observer [0.208543s] ... 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-93938c6a-29c6-4b10-9c59-d7e459174bde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_node_portgroups [0.706820s] ... 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-0cccca58-acfe-4701-a4fc-3b0a3a5bbebb 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.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps [0.148552s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_admin [0.098205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2411b9f0-b3cb-45e7-853e-ddbd3bf10723 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.147195s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_member [0.124133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-43d7a1f9-df24-4f61-9d4b-c898c26284b1 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_node_porgtroups [0.225029s] ... 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-c000ba32-6cfc-4cdc-a72e-d0be46353ef7 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": "24fb5222-cd0f-4d90-960e-0499a83ad6f8", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/24fb5222-cd0f-4d90-960e-0499a83ad6f8", "rel": "self"}, {"href": "http://localhost/portgroups/24fb5222-cd0f-4d90-960e-0499a83ad6f8", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.441757s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps [0.105569s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_ports_port_id_delete_observer [0.125523s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1fabe7c2-ed09-482e-be1c-98f57587b19a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.078994s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing [0.106365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.070880s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_portgroups [0.225231s] ... 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-2dae0e30-2975-4903-821f-44f53109b763 X-Openstack-Ironic-Api-Maximum-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.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_admin [0.135409s] ... 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-f006bccb-2ff0-44a8-a4b7-3c28c7a33467 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_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps [0.090833s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.092394s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.052526s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.117125s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_member [0.130906s] ... 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-7e81dc79-e28c-4ba8-8394-61e79861a30e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.061691s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_service_cannot_get_portgroups [0.186685s] ... 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-fb9582e9-4b17-4702-bdc0-b95e84127146 X-Openstack-Ironic-Api-Maximum-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_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.048485s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps [0.096156s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.037875s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_get_observer [0.151335s] ... 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-f1028302-34b1-4359-8aed-31d83d8bba73 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_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.058114s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.102497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_338_owner_reader_can_list_ports [0.191318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c016a79-2e16-4bdd-8deb-5112f745b52d 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": "933b2bd7-a4f1-4b08-83e9-b5114aaf1495", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/933b2bd7-a4f1-4b08-83e9-b5114aaf1495", "rel": "self"}, {"href": "http://localhost/ports/933b2bd7-a4f1-4b08-83e9-b5114aaf1495", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.060636s] ... ok {2} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.039839s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.150061s] ... 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-0fce5541-c253-4e79-bff9-61224f4b061b 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-22T18:22:56.120686+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_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.105281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.048022s] ... ok {2} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.030454s] ... ok {2} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.032093s] ... ok {2} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.030142s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.111654s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_owner_service_can_list_ports [0.193954s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14649272-8a56-43f6-9877-0081bb398584 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": "f682e4a9-2258-4b10-8d84-c29b9e6ac999", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/f682e4a9-2258-4b10-8d84-c29b9e6ac999", "rel": "self"}, {"href": "http://localhost/ports/f682e4a9-2258-4b10-8d84-c29b9e6ac999", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.045624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_member [0.212435s] ... 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-5649fcae-ecbf-44ed-9076-882dc2585f27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_utils.FastTrackTestCase.test_is_fast_track_config_false [0.056313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__get_deployment_templates [0.130095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info [0.059764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string [0.055811s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks [0.062779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_340_lessee_reader_can_list_ports [0.274115s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-efa6f152-e156-484a-a9de-7c45ad9b158f 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": "30b9ace3-479e-40cc-960a-9823935aae4d", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/30b9ace3-479e-40cc-960a-9823935aae4d", "rel": "self"}, {"href": "http://localhost/ports/30b9ace3-479e-40cc-960a-9823935aae4d", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.159984s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.233515s] ... 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-302b5d3c-d9d1-462e-94ae-4b56280dc2c7 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-22T18:22:56.537059+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_utils.FastTrackTestCase.test_is_fast_track_inspected_no_heartbeat [0.115323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.110310s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_341_third_party_admin_cannot_list_ports [0.185773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b17fa3ae-8a64-48c6-b6cb-b38292664efc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_admin [0.158016s] ... 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-272d3b18-5ac8-4853-9a42-930151c712ba 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_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.128589s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.108557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_member [0.144352s] ... 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-85edeaa1-aeac-458a-95ad-6004b8998ebf X-Openstack-Ironic-Api-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.conductor.test_utils.FastTrackTestCase.test_is_fast_track_not_in_servicing [0.099325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.104310s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_342_owner_reader_can_read_port [0.171924s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b2f63b7-4e1d-4bac-a91a-d52886ed1b3b 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-22T18:22:56.898546+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.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false [0.117367s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.111912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_get_observer [0.174434s] ... 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-75ccdb1f-1b6b-427e-9404-14de2d16356b 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_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.094937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_343_owner_service_can_read_port [0.209004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17b178c0-a4b0-4e51-b372-dd27dfcca0aa 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-22T18:22:57.073061+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.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat [0.163749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.138839s] ... 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-54fac89c-4aea-41c4-b068-6e32b8871651 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_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.129305s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info [0.129251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.195612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/a01f7873-4228-40b0-8105-60464324d354 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-22df4a8e-32b2-4021-95f4-e274e874c29c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a01f7873-4228-40b0-8105-60464324d354", "created_at": "2025-05-22T18:22:57.309261+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/a01f7873-4228-40b0-8105-60464324d354", "rel": "self"}, {"href": "http://localhost/ports/a01f7873-4228-40b0-8105-60464324d354", "rel": "bookmark"}], "portgroup_uuid": null} {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.122253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string [0.111442s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.107229s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.117504s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.236288s] ... 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-a53fd11b-a7ff-44b2-b598-e6e16fb924bb X-Openstack-Ironic-Api-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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.371078s] ... 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-a5a3003d-3515-45bd-a2c9-5f55e18347e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.157942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.157120s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.148322s] ... 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-ffedadf4-5287-4fc8-8bf3-63190f510371 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_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.115303s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_346_owner_admin_can_add_ports [0.213994s] ... 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-aa7808fc-b218-4b25-9002-488cd23848ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.096325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.100206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always [0.101580s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_admin [0.206860s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ed18075-d64a-491e-a1e9-c4249739ad6a 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_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing [0.112144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default [0.097119s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_member [0.133436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ff9ea767-65b1-4324-a286-888f8abc1860 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.TestRBACProjectScoped.test_project_scoped_347_owner_manager_can_add_ports [0.333921s] ... 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-48f81b9f-d079-4829-88cb-00800a8e4ecb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.138325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never [0.105454s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_get_observer [0.122727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd78a762-2e4f-4ef2-921f-04500c7ed11c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {2} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [0.094584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing [0.122897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_admin [0.112336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-542c88e6-efa0-4df4-be1b-76580bd80749 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": "ea0ea927-2f36-439b-8822-ff87b2696fde", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ea0ea927-2f36-439b-8822-ff87b2696fde", "rel": "self"}, {"href": "http://localhost/volume/connectors/ea0ea927-2f36-439b-8822-ff87b2696fde", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [0.097876s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_348_owner_admin_cannot_add_ports_to_other_nodes [0.214715s] ... 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-63a869d9-72da-4b33-a641-25ced20f5e1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps [0.116086s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.conf.test_types.ExplicitAbsolutePath.test_explicit_absolute_path [0.071634s] ... ok {2} ironic.tests.unit.console.container.test_console_container.TestConsoleContainerFactory.test_factory [0.042177s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_member [0.135040s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d3419484-63da-4468-9879-a732247b7e70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled [0.099698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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 [0.033575s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.050648s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_manager_cannot_add_ports_to_other_nodes [0.227725s] ... 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-6961ca21-786d-4fbf-a263-780292623566 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_get_observer [0.113789s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b30b28d0-8ad9-4bad-87f0-67e153be6cc9 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": "fd757f20-1ae4-4a5e-8f84-9509d6561799", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/fd757f20-1ae4-4a5e-8f84-9509d6561799", "rel": "self"}, {"href": "http://localhost/volume/connectors/fd757f20-1ae4-4a5e-8f84-9509d6561799", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail [0.100267s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.067567s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off [0.090598s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_admin [0.126606s] ... 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/72e1d11a-e768-45b5-8279-bca07eb74fb3 Openstack-Request-Id: req-5d852357-2918-4ac2-9294-46a4c0426f95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "72e1d11a-e768-45b5-8279-bca07eb74fb3", "created_at": "2025-05-22T18:22:58.742333+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/72e1d11a-e768-45b5-8279-bca07eb74fb3", "rel": "self"}, {"href": "http://localhost/volume/connectors/72e1d11a-e768-45b5-8279-bca07eb74fb3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.076851s] ... ok {3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok [0.087417s] ... ok {2} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.069045s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_service_cannot_add_ports_to_other_nodes [0.199044s] ... 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-5aad758a-be67-4cc9-be86-96fc36d30f65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.057835s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_member [0.156161s] ... 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-5129a777-8ad0-46f7-b9de-78507e617286 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted [0.102104s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component [0.067262s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_connectors_post_observer [0.102229s] ... 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-2238b9db-6486-4ee5-a7b2-f696a7b30c44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component_duplicate [0.075437s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_owner_member_cannot_add_port [0.211949s] ... 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-1cd002e3-7595-4685-81fc-4a590deb53bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step [0.141040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_delete_firmware_component_list [0.095290s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.137995s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/549d3b3b-ea5c-4b04-b8c4-96aa5d669efa WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b3aac33a-d8a8-47fc-b4ac-f86205fdd923 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "549d3b3b-ea5c-4b04-b8c4-96aa5d669efa", "created_at": "2025-05-22T18:22:59.084232+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/549d3b3b-ea5c-4b04-b8c4-96aa5d669efa", "rel": "self"}, {"href": "http://localhost/volume/connectors/549d3b3b-ea5c-4b04-b8c4-96aa5d669efa", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component [0.070884s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_admin_cannot_add_port [0.185871s] ... 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-dfacac73-816e-4b67-b19f-1384802774ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list [0.070932s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.139839s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/669011d1-7f92-4cea-b0f5-84e0dfcda846 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6bd1b758-1e19-4f04-9b28-4002f95f5376 X-Openstack-Ironic-Api-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 669011d1-7f92-4cea-b0f5-84e0dfcda846 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list_node_not_exist [0.089754s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.086877s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/7576aa39-bcda-4b75-8a58-5b45b70ff460 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b3eeeea-0acb-4211-b761-754bc449c9c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7576aa39-bcda-4b75-8a58-5b45b70ff460", "created_at": "2025-05-22T18:22:59.344131+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/7576aa39-bcda-4b75-8a58-5b45b70ff460", "rel": "self"}, {"href": "http://localhost/volume/connectors/7576aa39-bcda-4b75-8a58-5b45b70ff460", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_node_not_exist [0.093729s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.120644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/2000fa33-9a3c-4be1-8295-2c46ca6ec144 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-53b80a1e-0104-40c6-96fb-98a12b4d9792 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_353_lessee_manager_cannot_add_port [0.284053s] ... 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-d2363d4d-8cee-415c-8767-dd4ab8a50307 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_setting_not_exist [0.101378s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.557518s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.147508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/044a6a7f-0440-45b3-a7f5-96edd1c063b1 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6da305a1-32f0-42c5-9bd4-88087ce09a28 X-Openstack-Ironic-Api-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 044a6a7f-0440-45b3-a7f5-96edd1c063b1 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_component_not_exist [0.095368s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_354_lessee_member_cannot_add_port [0.195126s] ... 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-57550ca9-b25b-4666-989f-e9aedc4c6580 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.100704s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.117951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/8706c750-54a0-47dc-9a0a-76b4ccd9a891 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-26e89018-ca6c-4f74-a435-23287de9321e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_components [0.112839s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.104624s] ... ok {2} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_destroy_node_inventory_by_node_id [0.092086s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_355_third_party_admin_cannot_add_port [0.201185s] ... 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-1eee9cdc-6a8d-4a23-b89e-3465f048fa4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient [0.115068s] ... ok {2} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_get_inventory_by_node_id [0.079526s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.172128s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/e8aa4f26-91eb-4488-bd55-46360c5c58f1 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-38d3f250-377e-4294-930d-5ad1213ce502 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_create_port_duplicated_address [0.031836s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.039043s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.095508s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_with_description [0.061937s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_356_service_can_add_port [0.215825s] ... 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-32428c57-f719-4b3d-ac9c-51852a391a22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.096067s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port [0.049803s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.046532s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.234850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/bb39f558-e5d9-4777-9637-ca76e2aa761b GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-27363784-8c82-4816-b991-26b0dd0bf574 X-Openstack-Ironic-Api-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 bb39f558-e5d9-4777-9637-ca76e2aa761b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner [0.048874s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.110332s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match [0.039873s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.100575s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project [0.072097s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_357_service_cannot_add_ports_to_other_project [0.226264s] ... 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-e7e0845d-0cc4-442c-9dc1-1af74ece03ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match [0.042619s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id [0.045423s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.123442s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.277990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/d485378a-7039-45e4-8b81-7eb01a786bcb GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-98d94816-f11c-49ef-befc-004689d49111 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name [0.057622s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.064941s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.158003s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_owner_admin_can_modify_port [0.281094s] ... 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-fd8e1850-6639-45a8-81a1-a2831b50ecdf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_get_port_list [0.097154s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries [0.106939s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner [0.109135s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_admin [0.329692s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7ef70b4-4758-40ef-98c3-acd8e8eacdde 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": "b6427888-e58a-4e01-a37d-b167cebf91dc", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b6427888-e58a-4e01-a37d-b167cebf91dc", "rel": "self"}, {"href": "http://localhost/volume/targets/b6427888-e58a-4e01-a37d-b167cebf91dc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project [0.078495s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.124001s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_owner_manager_can_modify_port [0.290219s] ... 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-e407e343-f739-46b4-bfc0-8016fea9d8ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.103984s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_member [0.197153s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b8b2aa32-763e-4ab0-ac3f-82644bea4bc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.113308s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.293011s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_get_observer [0.167005s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7032e5b4-a1b1-4bad-bf8a-54b1007d716c 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": "8463c5ae-ae5d-4e8c-a24f-ab2af886782d", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8463c5ae-ae5d-4e8c-a24f-ab2af886782d", "rel": "self"}, {"href": "http://localhost/volume/targets/8463c5ae-ae5d-4e8c-a24f-ab2af886782d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.060567s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.143983s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner [0.033106s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match [0.045503s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_admin [0.152592s] ... 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/9920b7eb-a0b3-4ff2-ae8e-e093179c642a Openstack-Request-Id: req-729b752f-7418-4819-b41c-77add4da80a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9920b7eb-a0b3-4ff2-ae8e-e093179c642a", "created_at": "2025-05-22T18:23:01.322024+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9920b7eb-a0b3-4ff2-ae8e-e093179c642a", "rel": "self"}, {"href": "http://localhost/volume/targets/9920b7eb-a0b3-4ff2-ae8e-e093179c642a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_360_owner_service_can_modify_port [0.416823s] ... 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-0f0932e9-fc37-440a-af90-db7c54b337a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.115311s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project [0.073501s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match [0.032769s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.036992s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.091527s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.055344s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner [0.045464s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_member [0.209949s] ... 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-ea06b30c-e7ca-46b0-a32b-e6e5fce88641 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.125576s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match [0.047403s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project [0.049731s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_owner_member_cannot_modify_port [0.338293s] ... 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-754eae5b-f67c-48cf-b395-0ebf31fcabb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match [0.048163s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.124066s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.048267s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_targets_post_observer [0.209259s] ... 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-d7fa8336-e921-423d-b670-444454ed9fc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_ports.DbPortTestCase.test_get_ports_by_shard_no_match [0.043535s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.116574s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_multi [0.059658s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_single [0.059758s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.087661s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.203876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/51f0e88f-9887-4c70-9f74-6363d48ae8d0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed68db56-abc7-4b9d-ac65-e8f7a1611339 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "51f0e88f-9887-4c70-9f74-6363d48ae8d0", "created_at": "2025-05-22T18:23:01.883209+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/51f0e88f-9887-4c70-9f74-6363d48ae8d0", "rel": "self"}, {"href": "http://localhost/volume/targets/51f0e88f-9887-4c70-9f74-6363d48ae8d0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.068702s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_lessee_admin_cannot_modify_port [0.313715s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/7d677ce9-eaa5-4b29-95a9-7782fa9b4c7b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-91f00c2c-4058-4cd2-a43e-8e5b519d3c0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.072158s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.080584s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.087163s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_member [0.177658s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/b201e3a3-a168-4332-8cfc-fbc471260f5c WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1eaa31ad-3dac-4c34-8740-e8bf9e25c84e X-Openstack-Ironic-Api-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 b201e3a3-a168-4332-8cfc-fbc471260f5c could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.093285s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.120821s] ... ok {2} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_empty_list [0.059258s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.094040s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_363_lessee_manager_cannot_modify_port [0.310315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/fd146503-f119-4c9c-a475-5e380f4acb5b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-74519657-bd94-4069-9cbe-105b204a1820 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.179203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1124d338-8782-4c43-a770-88f96b8034bf WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af2d45cc-cf3d-4533-8ef3-c65826308b2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1124d338-8782-4c43-a770-88f96b8034bf", "created_at": "2025-05-22T18:23:02.267667+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/1124d338-8782-4c43-a770-88f96b8034bf", "rel": "self"}, {"href": "http://localhost/volume/targets/1124d338-8782-4c43-a770-88f96b8034bf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_list [0.106653s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.089649s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.081140s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.129823s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_364_lessee_member_cannot_modify_port [0.258182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/c1ef9c33-afb9-4993-8434-9c3173aa2ff0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fa9a66ad-054c-4840-a378-9bb48653b1f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.231755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/bb3b7957-0afe-469d-be68-1a6eec3ea914 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8337fabf-d672-411c-be27-52311bf116e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.120331s] ... ok {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.132664s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.079486s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.045207s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.056137s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_third_party_admin_cannot_modify_port [0.201541s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/35b90db8-8826-468d-8dbb-e277f9524b5b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9e0ceeff-adb5-428f-aee5-5bb8d66533b2 X-Openstack-Ironic-Api-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 35b90db8-8826-468d-8dbb-e277f9524b5b could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.132493s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.042848s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.290051s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/f9313531-ca5c-489a-9844-1506c16b74af WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b2a92c06-7df5-496c-aa44-6bf5a9a68867 X-Openstack-Ironic-Api-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 f9313531-ca5c-489a-9844-1506c16b74af could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.070534s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.028802s] ... ok {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present [0.138465s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.034546s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.033812s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.045871s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.051185s] ... ok {2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.035070s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_366_owner_admin_can_delete_port [0.338817s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a74d41ae-6680-422b-9e78-991839a9fcd4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off [0.194802s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error [0.035889s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.304945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/5fe8552a-41e1-4047-9118-c28824cc3421 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eaf82a27-b606-41c8-8681-a82e1bd874c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status [0.096944s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller [0.071202s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.208754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/7400ac79-1901-4797-900d-caaff336ede1 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7fe72b6d-2721-4863-bf77-fb1469589b15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed [0.083609s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.CacheBootModeTestCase.test_change_secure_off_to_none [0.353116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_367_owner_manager_can_delete_port [0.427405s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d9044142-d457-439e-9d0a-7e73143dec1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing [0.243301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.CacheBootModeTestCase.test_failed_boot_mode [0.253654s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error [0.101012s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_368_owner_service_can_delete_port [0.317475s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-03cd6207-1823-4832-8588-9f9334ef68de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure [0.259435s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode [0.268474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.CacheBootModeTestCase.test_noneness [0.203296s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion [0.251716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.996907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/dc64818e-8c76-4539-bfbe-cf5538977531 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-560ae39b-0c0a-4c39-a1fc-fda14935d51c X-Openstack-Ironic-Api-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 dc64818e-8c76-4539-bfbe-cf5538977531 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set [0.210026s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid [0.159610s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac [0.136452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.CacheBootModeTestCase.test_unsupported [0.189895s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.237199s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/5f3679d8-922d-4c4f-bc14-a80ff9f7412a GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c5871abb-e363-4419-b514-1b7515d774a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy [0.130773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.GetAttachedVifTestCase.test_get_attached_vif_cleaning [0.112853s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_369_owner_member_cannot_delete_port [0.881201s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3eac1978-775c-4669-b17b-3359d82cda3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting [0.072796s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem [0.129492s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.GetAttachedVifTestCase.test_get_attached_vif_none [0.053545s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_admin [0.204189s] ... 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-52a1e378-9967-4f3a-ae41-accf80a9aaac 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_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning [0.036618s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing [0.035389s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity [0.136152s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant [0.064879s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_370_lessee_admin_cannot_delete_port [0.232116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/f2e14ef9-4aee-408a-a64b-6aab1f9e6aef GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8b17a8f4-1fba-459c-8af9-4785b40a7c32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.029973s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready [0.089711s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.060769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_member [0.252506s] ... 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-0b456b29-281d-4f5b-aed6-1c7f586d0198 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.054644s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status [0.134716s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_lessee_manager_cannot_delete_port [0.245243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/88b887ad-26d1-4f21-9300-44888c461e5e GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-356eda74-5c5a-49ee-8cbb-055349947a87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.124239s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url [0.095334s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_get_observer [0.202526s] ... 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-c8db333f-ee51-4212-8ac4-2ad211eb3792 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.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready [0.059830s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded [0.065740s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_member_cannot_delete_port [0.207941s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/3b2f3224-25ad-442b-9381-456b85e2e952 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-32968330-2d48-415c-bdab-bbe5411b0fa1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails [0.117825s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.280783s] ... 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-a1ce3557-29e0-4cbf-9ed8-16252ac1fcbd 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": "ae16c600-e07b-4564-9788-0aecab542fa8", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ae16c600-e07b-4564-9788-0aecab542fa8", "rel": "self"}, {"href": "http://localhost/volume/connectors/ae16c600-e07b-4564-9788-0aecab542fa8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_third_party_admin_cannot_delete_port [0.203310s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/6ff30cd5-aa72-4898-9b59-59e0ba95b27e GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d3fea84-9b5e-4edd-9b0b-e0228600850b X-Openstack-Ironic-Api-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 6ff30cd5-aa72-4898-9b59-59e0ba95b27e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean [0.167250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.459073s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.069767s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.205827s] ... 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-e5851bb0-6325-46bd-a41d-b4ce391d7c01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy [0.139866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodePowerActionTestCase.test_node_power_action_disable_power_off [0.058880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.266320s] ... 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-13157417-18e9-40c8-aed1-4d3bcccbbe69 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"}]}]} {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_clean [0.129250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodePowerActionTestCase.test_node_power_action_failed_getting_state [0.145896s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.221832s] ... 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-e8ecdb0c-2c15-4979-913c-328bfa69cbe3 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": "ae3adaa3-e925-46ac-820a-dc90badc35ba", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ae3adaa3-e925-46ac-820a-dc90badc35ba", "rel": "self"}, {"href": "http://localhost/volume/connectors/ae3adaa3-e925-46ac-820a-dc90badc35ba", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy [0.134232s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.159913s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.225788s] ... 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-0ff110ab-3594-4b1a-9eed-04604662c86e 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"}]}]} {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready [0.097596s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.078728s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror [0.068204s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.239030s] ... 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-a891265c-60f0-4b6c-95e9-0d15eac25045 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": "75d8d8b5-2e7a-4375-8d23-bc61104ac318", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/75d8d8b5-2e7a-4375-8d23-bc61104ac318", "rel": "self"}, {"href": "http://localhost/volume/targets/75d8d8b5-2e7a-4375-8d23-bc61104ac318", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.075437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodePowerActionTestCase.test_node_power_action_invalid_state [0.099203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_376_lessee_reader_can_get_node_port [0.254833s] ... 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-f7cb42c9-b6aa-41dd-a10b-ec353d035d44 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": "27f5917c-f1ce-44b0-b094-5ca0a0c958a8", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/27f5917c-f1ce-44b0-b094-5ca0a0c958a8", "rel": "self"}, {"href": "http://localhost/ports/27f5917c-f1ce-44b0-b094-5ca0a0c958a8", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_member [0.187587s] ... 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-f4b1abfd-1ba0-4e29-b6bf-594d39c5ad85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.184399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.228343s] ... 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-d6a14070-6c06-4c2e-bda8-6f68b25bbf05 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": "0bc388d8-16c1-4095-9b68-5dd82776f094", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0bc388d8-16c1-4095-9b68-5dd82776f094", "rel": "self"}, {"href": "http://localhost/volume/targets/0bc388d8-16c1-4095-9b68-5dd82776f094", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_377_third_party_admin_cannot_get_ports [0.301835s] ... 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-aa05f32c-d190-4d87-8261-94e6f5912e1f X-Openstack-Ironic-Api-Maximum-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.NodePowerActionTestCase.test_node_power_action_keep_last_error [0.145203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration [0.515476s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration [0.063399s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_admin [0.169509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-074f5055-a301-4af1-8cf7-161e0a0001e0 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.NodePowerActionTestCase.test_node_power_action_power_off [0.139689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_378_service_cannot_get_ports [0.181167s] ... 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-4c9167dc-66ef-47f0-9457-372f6b291baf X-Openstack-Ironic-Api-Maximum-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.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async [0.130418s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync [0.059406s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_member [0.159436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-872d1633-c643-4cf6-bcfa-d49c1fd191e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_already [0.166105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_379_owner_reader_can_get_ports_by_portgroup [0.137733s] ... 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-c3c8283e-e4df-4e3c-87ce-64a242e222de 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.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks [0.074008s] ... ok {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration [0.081951s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_get_observer [0.178603s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb6eec4e-9a3b-4ff1-b867-1f0af8bdea89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {2} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor [0.071892s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_380_owner_service_cam_get_ports_by_portgroup [0.255626s] ... 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-184f7ed3-6e41-4c66-9854-be46575dedd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_admin [0.185958s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-864a5f0a-3a4e-46e4-9bbf-f521b2aeaf65 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.151930s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_381_lessee_reader_can_get_ports_by_portgroup [0.135003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/031c1bfa-6c61-4b54-8dcf-d722b5ae2f20/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11077085-1ecc-4e08-90d7-3c5e6e142af3 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_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.147837s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_member [0.181075s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6b7a4d9b-a68e-47b6-bae6-a15d1cde839f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_382_third_party_admin_cannot_get_ports_by_portgroup [0.166504s] ... 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-1a5de6ce-1a69-4aa0-9eae-9b4c68f7d49b X-Openstack-Ironic-Api-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_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.142158s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_driver_name_get_observer [0.171755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-65ae53a2-53d0-4717-8cd6-c914aa84fb1f X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_383_service_cannot_get_ports_by_portgroup [0.184480s] ... 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-f5dad593-e46c-4908-9704-10218684a1d0 X-Openstack-Ironic-Api-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_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.181003s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_384_owner_reader_can_list_volume_connectors [0.219219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ca494c68-ec8c-44e2-96e6-5455bbec9942 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": "581df2db-d466-4c7c-8e8d-596c5e89a5b4", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/581df2db-d466-4c7c-8e8d-596c5e89a5b4", "rel": "self"}, {"href": "http://localhost/volume/connectors/581df2db-d466-4c7c-8e8d-596c5e89a5b4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_admin [0.254295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6dbdc016-10e1-4d85-8ff8-48cb3c4a6903 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.156435s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_lessee_reader_can_list_volume_connectors [0.125171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd222f48-dadd-4bc9-b843-8cd4734fef1b 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": "9153d319-1fb1-45cb-855d-a644010c1cc5", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9153d319-1fb1-45cb-855d-a644010c1cc5", "rel": "self"}, {"href": "http://localhost/volume/connectors/9153d319-1fb1-45cb-855d-a644010c1cc5", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.176274s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_member [0.238699s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-42222c52-8f05-447f-8956-6f074e9e9c12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_386_third_party_admin_cannot_get_connector_list [0.172370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d125f57-f27e-4d46-a1a1-c4e13413f2a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.155718s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_properties_get_observer [0.207301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9862599e-feec-4d2a-b121-eaedf40714e6 X-Openstack-Ironic-Api-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_387_owner_admin_can_post_volume_connector [0.170126s] ... 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/2af263e4-1a4e-4efa-8e62-4a8ed46427a0 Openstack-Request-Id: req-0e43aa6e-d897-4530-a4a1-2e23e63b4eae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2af263e4-1a4e-4efa-8e62-4a8ed46427a0", "created_at": "2025-05-22T18:23:08.508507+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/2af263e4-1a4e-4efa-8e62-4a8ed46427a0", "rel": "self"}, {"href": "http://localhost/volume/connectors/2af263e4-1a4e-4efa-8e62-4a8ed46427a0", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.168536s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_owner_manager_can_post_volume_connector [0.164943s] ... 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/6a883379-d33b-4a16-962a-fc990cc70637 Openstack-Request-Id: req-c2deca87-9d51-4f76-82ac-c45d4b4b26a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6a883379-d33b-4a16-962a-fc990cc70637", "created_at": "2025-05-22T18:23:08.668067+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/6a883379-d33b-4a16-962a-fc990cc70637", "rel": "self"}, {"href": "http://localhost/volume/connectors/6a883379-d33b-4a16-962a-fc990cc70637", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.169586s] ... 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-d9eb2004-c178-401b-90d5-29b71f853ddc X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.139236s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_owner_service_can_post_volume_connector [0.121656s] ... 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/af339ec7-22dc-4ed0-9bec-ae09bedd9253 Openstack-Request-Id: req-b84d30e6-da42-4065-832e-2def16ec3d7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "af339ec7-22dc-4ed0-9bec-ae09bedd9253", "created_at": "2025-05-22T18:23:08.796230+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/af339ec7-22dc-4ed0-9bec-ae09bedd9253", "rel": "self"}, {"href": "http://localhost/volume/connectors/af339ec7-22dc-4ed0-9bec-ae09bedd9253", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.153261s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.182136s] ... 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-5302ff13-a87c-447d-9ea0-55749ea3905c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_admin_cannot_post_volume_connector [0.138961s] ... 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-9c3b19aa-db03-4d9d-9488-0549b986d012 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.143351s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.176524s] ... 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-3adc8e6a-dac2-4ac3-ad9b-997fbbf5079a X-Openstack-Ironic-Api-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_391_lessee_manager_cannot_post_volume_connector [0.129427s] ... 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-0b32169f-de5c-42f7-8b0e-0decc980482e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.140545s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_392_third_party_admin_cannot_post_volume_connector [0.121905s] ... 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-79ec3a5f-8590-4101-abf5-d971e9099912 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.167846s] ... 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-a87e3052-8f08-49d2-b7bb-18432a4da8dd X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.133046s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_exception_if_child_locked [2.231593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.130764s] ... 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-a14fdea0-2336-4109-8bad-93c15ed7f8d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.165130s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-61718930-6c65-4d4a-832c-2cc98f9bfc64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.155968s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_owner_reader_can_get_volume_connector [0.122206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/60d83911-b7d5-4310-ad05-7a8f28fe0ad9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b986ff96-1040-4c85-b82f-3dae80541acd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "60d83911-b7d5-4310-ad05-7a8f28fe0ad9", "created_at": "2025-05-22T18:23:09.392159+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/60d83911-b7d5-4310-ad05-7a8f28fe0ad9", "rel": "self"}, {"href": "http://localhost/volume/connectors/60d83911-b7d5-4310-ad05-7a8f28fe0ad9", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_lessee_reader_can_get_volume_connector [0.132600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/7a167c44-886a-4e5c-86e3-4ebe977f1373 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59f25a4e-a9b7-4f9d-b8f0-82286d1d93c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7a167c44-886a-4e5c-86e3-4ebe977f1373", "created_at": "2025-05-22T18:23:09.533561+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/7a167c44-886a-4e5c-86e3-4ebe977f1373", "rel": "self"}, {"href": "http://localhost/volume/connectors/7a167c44-886a-4e5c-86e3-4ebe977f1373", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.220532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fa1d5e01-2f35-453a-be7d-9d0bdfbe49db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.NodePowerActionTestCase.test_node_power_action_power_off_parent [0.320474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.211678s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.103462s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.189196s] ... 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-ee0b2d37-9567-4c13-99be-0a09d659d921 X-Openstack-Ironic-Api-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_396_third_party_admin_cannot_get_volume_connector [0.214432s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/17f9a9a2-9dd2-4646-b225-61efa56504dc WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-48bad18d-ca88-4ae8-8428-ad34ef961a36 X-Openstack-Ironic-Api-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 17f9a9a2-9dd2-4646-b225-61efa56504dc could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent_child_remains [0.218080s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.137156s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.091515s] ... 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-d6f1d4f7-27ad-4a9c-9e30-f2ff4d0c288f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.118673s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.091431s] ... 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-2329c3b5-53b3-4b6c-896e-b42a53bf9707 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_397_lessee_member_cannot_patch_volume_connectors_extra [0.210239s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/571d03f6-b02d-4f7e-8a0a-ee602553126d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4d82b59f-7b39-4ef0-8a69-1275382a515d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token [0.226522s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.098163s] ... 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-3319e546-8fa5-4dd4-ab9a-d0d92c7643a0 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.134915s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.084219s] ... 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-b20353f1-d7b1-4650-a97d-c3941df46280 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.197966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.271900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/a20a68ef-d03c-435b-bb07-fdda9bac642a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-694eb158-f91f-48eb-a7f0-0f1baeba79dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.182327s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.158499s] ... 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-d739a3eb-fbdb-4587-80b0-3f03c934dba6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.NodePowerActionTestCase.test_node_power_action_power_on [0.121961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.142096s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.116149s] ... 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-6f069b4b-8fdc-47b5-8b51-a07dc88e0044 X-Openstack-Ironic-Api-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_399_owner_manager_can_patch_volume_connectors [0.229507s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/08166d3e-4e12-4a95-a4be-cbdd1b8e569c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e15a3466-11e3-458d-9cb1-e61feea8db4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.119355s] ... 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-98675e41-736f-42cb-a3c8-f279015f2639 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.151667s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.094584s] ... 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-6e59b7ef-6554-47b3-9187-6ea94c0307a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_400_lessee_admin_cannot_patch_volume_connectors [0.211214s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/ac2462fc-a75a-4422-9678-5f5a2d7a299e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-236c79ab-10ff-4508-80fa-e578323c2925 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.151529s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.132078s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_401_lessee_manager_can_patch_volume_connectors [0.248534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/e877bbd0-7bee-4600-aae8-64f6866546e3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-36fa19ad-076c-4563-a0e5-7c02ca2af635 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.138704s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.104505s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_402_owner_member_can_patch_volume_connectors [0.205716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/18bef7b3-c777-4a19-8844-1d1dd03e954b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4fb4dbad-9f19-4f7c-97b0-9355511d084b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.083705s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.100418s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.096439s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_403_lessee_member_cannot_patch_volume_connectors [0.212101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/cb3991b5-eeec-4900-b896-ecf07376e2be WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-24b7e89f-0dce-42a6-a5a6-0614ddf698b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.087847s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_admin [0.608089s] ... 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-74cc5576-aa76-41ec-8c33-6da346fed7f6 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-22T18:23:11.497819+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.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.097274s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_member [0.097992s] ... 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-5e209a7e-d4c0-4ddc-a72e-57fe963be0b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_bios.IloBiosTestCase.test_validate [0.037849s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.050676s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_get_observer [0.132716s] ... 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-dfe68c43-d8b8-4c5f-b46d-ce68d013a398 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-22T18:23:11.725598+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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.070343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.059628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.118098s] ... 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-f70e72c3-e7e9-4f05-b269-339d06955962 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-22T18:23:11.843030+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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.064781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.061147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.093927s] ... 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-06c1de56-a75c-4901-a8d1-8f1f758a30b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.094355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.631982s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/27fd7725-526b-4d26-9ad4-d2e224f02b9c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7cb6b53f-1202-4d40-ab0e-0a247839fc3b X-Openstack-Ironic-Api-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 27fd7725-526b-4d26-9ad4-d2e224f02b9c could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.125215s] ... 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-50859dc7-ff02-4070-b03d-cb5173c1fbaa 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-22T18:23:12.057539+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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image [0.094248s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.075038s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_admin [0.114151s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c1636349-5a6e-4afd-8761-ae6b41de11b5 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.test_acl.TestRBACProjectScoped.test_project_scoped_405_owner_admin_can_delete_volume_connectors [0.187231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/72a05a46-a46d-4b80-aaa8-1d7daacd6a18 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-286ab972-cb89-4868-bfb9-b254d04f3cd9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_member [0.176897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4442e425-feb9-4246-b801-72b512a00e02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_manager_can_delete_volume_connectors [0.208936s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/36215da1-6008-4d4e-88bd-1107dfba7f1b GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-efd3ea01-f718-4300-b46d-a437bc826251 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_get_observer [0.122173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4e4fefb7-db9d-45ab-aa4e-dd2ab3248cbe 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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_exception_if_parent_locked [2.223983s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_407_owner_service_can_delete_volume_connectors [0.201097s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/909aa891-7cad-4078-94da-1feea36fe580 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-99861ddf-3975-4427-aa21-b1cca8745386 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_admin [0.132501s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b720d5b1-3c16-4959-a514-cfaadd144a7a 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-22T18:23:12.624835+00:00", "updated_at": "2025-05-22T18:23:12.625619+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_member [0.177254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5a92d920-f4e1-4f09-a38d-7dd886e5aa5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_408_lessee_admin_can_delete_volume_connectors [0.197439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/00c01606-928f-4f41-942b-6cd5e09c3a96 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5c83dcf7-5cd5-4031-960d-fb927f60c436 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_246_conductors_hostname_get_observer [0.118358s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-111f2e04-191e-46a7-97b2-9fb72e789013 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-22T18:23:12.943704+00:00", "updated_at": "2025-05-22T18:23:12.944650+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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.351067s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloBootPrivateMethodsTestCase.test__validate_driver_info [0.810910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_409_lessee_manager_can_delete_volume_connectors [0.230103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/7e5a43d4-ccfe-40ee-808b-d81de8d38d6a GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f4cdf956-bd01-406e-9d79-f71daedfd367 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_admin [0.137290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f1fc1cf8-3e1c-46c2-bd4b-744e1021669a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.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. {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info [0.219267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_410_third_party_admin_cannot_delete_volume_connector [0.180955s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/73ac1b28-dea1-441d-b401-7f3fed920b46 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a1a58890-eb77-4cdf-bfa5-1ba5b6c2dc48 X-Openstack-Ironic-Api-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 73ac1b28-dea1-441d-b401-7f3fed920b46 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_parent_off [0.316414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_post_observer [0.158500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-429da4ca-331c-471c-9b2c-e2da63817f27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.203104s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_411_service_cannot_delete_volume_connector [0.193114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/548920d4-892f-4a9d-96e9-94fb2b9b64a1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8dc12d31-6324-4469-9f71-f68e3cebdd1e X-Openstack-Ironic-Api-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 548920d4-892f-4a9d-96e9-94fb2b9b64a1 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_admin [0.151235s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2cef3c29-4384-4442-befe-cabd0ea9cd5f 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": "bdc0badc-27a3-4530-b45b-d50a635c9237", "created_at": "2025-05-22T18:23:13.487005+00:00", "updated_at": "2025-05-22T18:23:13.496366+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/bdc0badc-27a3-4530-b45b-d50a635c9237", "rel": "self"}, {"href": "http://localhost/allocations/bdc0badc-27a3-4530-b45b-d50a635c9237", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.284301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.214575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_member [0.117470s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5ea80b51-3748-4679-becd-a0128a735a66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.064361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.269393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-199343a0-e1ae-4340-895c-e274330b08cf 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": "39c2649f-aab9-4641-a72f-b1593edd7026", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/39c2649f-aab9-4641-a72f-b1593edd7026", "rel": "self"}, {"href": "http://localhost/volume/targets/39c2649f-aab9-4641-a72f-b1593edd7026", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.060261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__parse_deploy_info [0.080395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_get_observer [0.218976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9dd78567-fea5-4c83-ab14-4925cb8d844f 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": "0d78a2c5-90ce-44f5-9fee-96f7c33bc9e8", "created_at": "2025-05-22T18:23:13.746997+00:00", "updated_at": "2025-05-22T18:23:13.762587+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/0d78a2c5-90ce-44f5-9fee-96f7c33bc9e8", "rel": "self"}, {"href": "http://localhost/allocations/0d78a2c5-90ce-44f5-9fee-96f7c33bc9e8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_with_parent [0.303246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode [0.108347s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_413_lesse_reader_can_get_targets [0.253373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6968aae6-8a6d-4867-a1ba-3ca97ce5615a 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": "6bda7cfc-5954-46cd-a48e-d04c4f5d0b62", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6bda7cfc-5954-46cd-a48e-d04c4f5d0b62", "rel": "self"}, {"href": "http://localhost/volume/targets/6bda7cfc-5954-46cd-a48e-d04c4f5d0b62", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot [0.166165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params [0.106938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.229440s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/63a7c07b-72a9-485d-9488-d2b0e301fd13 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d3495db-cf68-4f75-819a-752c6a20eedc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "63a7c07b-72a9-485d-9488-d2b0e301fd13", "created_at": "2025-05-22T18:23:14.002054+00:00", "updated_at": "2025-05-22T18:23:14.015068+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/63a7c07b-72a9-485d-9488-d2b0e301fd13", "rel": "self"}, {"href": "http://localhost/allocations/63a7c07b-72a9-485d-9488-d2b0e301fd13", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode [0.068828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_414_third_party_admin_cannot_get_target_list [0.189025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a9768bde-4f1c-4d1a-a5c3-8c6c0f24143b 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_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image [0.076457s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodePowerActionTestCase.test_node_power_action_power_reboot_with_disable_power_off [0.201289s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image [0.062141s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test__validate_instance_image_info [0.047623s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_member [0.234655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/b23e1e1d-911c-4d32-9600-cd0a3f6c85ad WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8ac7c270-00ff-4bf5-b0a5-812f1d1f1d16 X-Openstack-Ironic-Api-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 b23e1e1d-911c-4d32-9600-cd0a3f6c85ad could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_415_owner_reader_can_get_volume_target [0.203945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/43710cb0-b32a-409a-8f11-a1281a6dda64 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8339ab2-ab76-45b0-9749-f0dfa19e8231 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "43710cb0-b32a-409a-8f11-a1281a6dda64", "created_at": "2025-05-22T18:23:14.317635+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/43710cb0-b32a-409a-8f11-a1281a6dda64", "rel": "self"}, {"href": "http://localhost/volume/targets/43710cb0-b32a-409a-8f11-a1281a6dda64", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance [0.070083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [0.157871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_clean_up_ramdisk [0.043304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk [0.080841s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.213287s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/ccffccfe-ef37-450f-825c-aac4b96ea6e7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9604a13-8383-48b0-9b12-716e1c72e61f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ccffccfe-ef37-450f-825c-aac4b96ea6e7", "created_at": "2025-05-22T18:23:14.511932+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/ccffccfe-ef37-450f-825c-aac4b96ea6e7", "rel": "self"}, {"href": "http://localhost/volume/targets/ccffccfe-ef37-450f-825c-aac4b96ea6e7", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image [0.057234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.235974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/1104e330-1513-44e6-b887-4b3ae5efc64f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d50d803-73ca-4311-a500-d96a845fafe4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1104e330-1513-44e6-b887-4b3ae5efc64f", "created_at": "2025-05-22T18:23:14.466553+00:00", "updated_at": "2025-05-22T18:23:14.470609+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/1104e330-1513-44e6-b887-4b3ae5efc64f", "rel": "self"}, {"href": "http://localhost/allocations/1104e330-1513-44e6-b887-4b3ae5efc64f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.217804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image [0.075487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.183522s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/5bdd26b4-b757-4e13-96a4-f1a0fc7192ab WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b6a90e57-7731-49f5-8259-abba5d414097 X-Openstack-Ironic-Api-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 5bdd26b4-b757-4e13-96a4-f1a0fc7192ab could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image [0.120025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.143194s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.240828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/da610b7e-248e-4b5e-ae7d-3f90ed6985e8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e7cc5b61-32b7-4809-98de-c8d78431f30a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "da610b7e-248e-4b5e-ae7d-3f90ed6985e8", "created_at": "2025-05-22T18:23:14.734363+00:00", "updated_at": "2025-05-22T18:23:14.872396+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/da610b7e-248e-4b5e-ae7d-3f90ed6985e8", "rel": "self"}, {"href": "http://localhost/allocations/da610b7e-248e-4b5e-ae7d-3f90ed6985e8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.153854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.219120s] ... 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/eff81e95-7221-4bbb-9b80-f5d1e9c9ce41 Openstack-Request-Id: req-ffcaf678-71f3-4bd1-b6a0-bff967b2c971 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "eff81e95-7221-4bbb-9b80-f5d1e9c9ce41", "created_at": "2025-05-22T18:23:15.007491+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/eff81e95-7221-4bbb-9b80-f5d1e9c9ce41", "rel": "self"}, {"href": "http://localhost/volume/targets/eff81e95-7221-4bbb-9b80-f5d1e9c9ce41", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.306184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step [0.192508s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.273214s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/23762f1e-428d-4f68-af7d-6f8f8bb4d6f4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3fc3bbde-f8c3-4d28-9b98-93a64335007b X-Openstack-Ironic-Api-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 23762f1e-428d-4f68-af7d-6f8f8bb4d6f4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_419_owner_service_create_volume_target [0.203995s] ... 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/889bfcf2-9d9d-4743-8e5a-f0cac17d238c Openstack-Request-Id: req-31f525a1-4375-4b1b-9414-f52b699a99e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "889bfcf2-9d9d-4743-8e5a-f0cac17d238c", "created_at": "2025-05-22T18:23:15.214360+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/889bfcf2-9d9d-4743-8e5a-f0cac17d238c", "rel": "self"}, {"href": "http://localhost/volume/targets/889bfcf2-9d9d-4743-8e5a-f0cac17d238c", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios [0.172715s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.175720s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.213539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/245b8899-67ce-4599-882e-40ed81243a6e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7d236481-fd50-4c4b-b405-b0cea1cc3bad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_owner_manager_create_volume_target [0.224249s] ... 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/59ba23b4-aed5-4bd4-b45b-217e6338553d Openstack-Request-Id: req-7043f7a7-ac82-47f6-98de-4ef2a6a5d456 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "59ba23b4-aed5-4bd4-b45b-217e6338553d", "created_at": "2025-05-22T18:23:15.434842+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/59ba23b4-aed5-4bd4-b45b-217e6338553d", "rel": "self"}, {"href": "http://localhost/volume/targets/59ba23b4-aed5-4bd4-b45b-217e6338553d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception [0.158281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.215809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.276228s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/07a99b97-24b0-401c-a4e5-021df9ba6fd4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fad370c6-1dfd-4f43-be94-93b6abf97325 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_421_lessee_admin_create_volume_target [0.245704s] ... 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/752a68f7-b71d-401e-adeb-63d2d2f2c7c3 Openstack-Request-Id: req-442fc185-10f5-4ff5-8dc9-b331949e8990 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "752a68f7-b71d-401e-adeb-63d2d2f2c7c3", "created_at": "2025-05-22T18:23:15.669225+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/752a68f7-b71d-401e-adeb-63d2d2f2c7c3", "rel": "self"}, {"href": "http://localhost/volume/targets/752a68f7-b71d-401e-adeb-63d2d2f2c7c3", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported [0.214409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.262020s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.205511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/60001290-2043-4cc0-be83-c636943682e0 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0c291e41-be3f-47e0-9bd6-df44ba972381 X-Openstack-Ironic-Api-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 60001290-2043-4cc0-be83-c636943682e0 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_422_lessee_manager_create_volume_target [0.329224s] ... 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/75107a2d-5a75-44c0-bdff-ab76bf399c90 Openstack-Request-Id: req-7a55cd6d-7813-4d75-ae81-60ee19596236 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "75107a2d-5a75-44c0-bdff-ab76bf399c90", "created_at": "2025-05-22T18:23:16.005233+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/75107a2d-5a75-44c0-bdff-ab76bf399c90", "rel": "self"}, {"href": "http://localhost/volume/targets/75107a2d-5a75-44c0-bdff-ab76bf399c90", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.170148s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/4cfe216c-ad94-45b9-9416-9022631c326c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-48824500-64ac-44ab-901f-25a9adbdeaee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.276133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_admin [0.147249s] ... 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-d90bf418-bdc1-494f-aac2-f4ea9e6055a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e5459e3c-9ccb-42c9-8c53-42510bea4c9d", "created_at": "2025-05-22T18:23:16.128937+00:00", "updated_at": "2025-05-22T18:23:16.140735+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/e5459e3c-9ccb-42c9-8c53-42510bea4c9d", "rel": "self"}, {"href": "http://localhost/allocations/e5459e3c-9ccb-42c9-8c53-42510bea4c9d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate [0.299545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.432499s] ... 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-a1b51f32-794a-422b-a06f-2c38be448330 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_member [0.465030s] ... 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-55bf5990-3329-483d-9626-c69e4aad748c X-Openstack-Ironic-Api-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.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios [0.307960s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify [1.069581s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.IloUefiHttpsBootTestCase.test_validate_inspection [0.127233s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_424_owner_member_can_patch_volume_target [0.460850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/72eef48e-914f-4582-9935-6fe810907dc9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a35f3cd9-45e2-4822-811f-0e78189bd55a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.IloUefiHttpsBootTestCase.test_validate_inspection_missing [0.094114s] ... ok {3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.135845s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_get_observer [0.370896s] ... 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-a181d5ac-1f64-439b-9a61-be43a34f3e27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "34ca27ad-72fe-4d09-a93a-0e7438f9c831", "created_at": "2025-05-22T18:23:16.835351+00:00", "updated_at": "2025-05-22T18:23:16.840050+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/34ca27ad-72fe-4d09-a93a-0e7438f9c831", "rel": "self"}, {"href": "http://localhost/allocations/34ca27ad-72fe-4d09-a93a-0e7438f9c831", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance [0.140420s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.179119s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_name [0.042831s] ... ok {3} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_path [0.028925s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver [0.140219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__host_port [0.024790s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_owner_service_can_patch_volume_target [0.351880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/4c375a4b-9fa7-44ea-bec2-02b0ff3d0944 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8ef17b70-2be8-48c5-9d34-7b484ab92566 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.console.container.test_console_container.TestSystemdConsoleContainer.test__reload [0.038876s] ... ok {3} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__start [0.032888s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_admin [0.311683s] ... 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-b477fae1-d387-4ee3-967b-5e7da4679526 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.console.container.test_console_container.TestSystemdConsoleContainer.test__stop [0.045153s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.146785s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__unit_name [0.047973s] ... ok {3} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__write_container_file [0.053821s] ... ok {3} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_delete_container_file [0.052691s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue [0.147098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_member [0.225213s] ... 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-d9da9f19-b96a-431f-80fb-d165c7363196 X-Openstack-Ironic-Api-Maximum-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.TestRBACProjectScoped.test_project_scoped_426_lessee_admin_can_patch_volume_target [0.278275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/e7005116-9e56-4d10-a865-66b561d2e6a1 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f779244a-1733-4936-b2ab-cf4fc3102afc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.console.container.test_console_container.TestSystemdConsoleContainer.test_start_stop_container [0.059622s] ... ok {3} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_stop_all_containers [0.069110s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.136432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_client_auth_invalid_fails [0.067308s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_nodes_allocation_delete_observer [0.198465s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f2aa9c64-4e1f-4408-a7f7-2a72cde737c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_in_choose_security_type_fails [0.041534s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_427_lessee_manager_can_patch_volume_target [0.237551s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/36ba4a79-6a6d-4edd-b791-97d2fb15729a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-eded176c-dc15-4629-8695-ee7fd050988c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_security_handshake_fails [0.066425s] ... ok {3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail [0.049115s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.259770s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail_server_message [0.064284s] ... ok {3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_host_version [0.064720s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_lessee_member_cannot_patch_volume_target [0.236781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1af6ea6e-b427-47ce-a559-d95abf09902f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2280a38b-a824-4504-ab59-79071ea00c2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_sec_type_cnt_zero [0.077340s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.164257s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_tenant_version [0.077946s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_429_third_party_admin_cannot_patch_volume_target [0.137379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/5c40231b-8b0b-40ad-8337-14d5bfbcb4b3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-90524260-4a95-4019-a61d-6428873e5571 X-Openstack-Ironic-Api-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 5c40231b-8b0b-40ad-8337-14d5bfbcb4b3 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.120483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_full_run [0.070900s] ... ok {3} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_parse_version [0.082178s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_430_service_cannot_patch_volume_target [0.137795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/f75e54ef-e776-4eaa-a350-f023e150537c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8f457546-92e0-4ffd-897c-735eb71681cb X-Openstack-Ironic-Api-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 f75e54ef-e776-4eaa-a350-f023e150537c could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.111287s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.120924s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/bc1336b2-be56-43f6-8d4a-a0477be392c9 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8074ac65-4b29-4d4f-bf34-cfd5d2bb684d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_clean_up_instance_rescuing [0.145346s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection [0.206535s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_432_owner_manager_can_delete_volume_target [0.101885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/9eaa5591-1689-43c3-95b6-60a04776e573 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2cf2836d-39e4-47be-88db-1a065537ef79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_clean_up_ramdisk [0.131642s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_admin [0.893562s] ... 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/fcc4a156-0dad-4bdd-936d-223fee32802e Openstack-Request-Id: req-0f00c683-25fe-46e1-8e28-13705188d268 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fcc4a156-0dad-4bdd-936d-223fee32802e", "created_at": "2025-05-22T18:23:18.666889+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/fcc4a156-0dad-4bdd-936d-223fee32802e", "rel": "self"}, {"href": "http://localhost/deploy_templates/fcc4a156-0dad-4bdd-936d-223fee32802e", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection_raise_OSError [0.193916s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_owner_manager_can_delete_volume_target_service [0.190752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/ccdb318f-eb27-42c8-b456-860fa3160c4d GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5384a5d4-355d-41a8-ab96-41eabff77118 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_member [0.175147s] ... 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-a535d69b-ca48-4b85-84ac-a58304adea80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.256753s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_address_string_doesnt_do_reverse_dns_lookup [0.189282s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_lessee_admin_can_delete_volume_target [0.218425s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/d1623ec3-55f0-41f6-a34d-503dc24edcb6 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-05b81eed-333b-4bd3-a0f3-9cd297ff95cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_post_observer [0.178371s] ... 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-6bf61b6f-b833-40b1-aebd-2bf23d857d6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client [0.168883s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.208238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.062693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_435_lessee_manager_can_delete_volume_target [0.279798s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/b31077ce-8ddc-4d94-b792-a4be23297743 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d9fc712f-92f8-445d-a67e-06861edd5f61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_prepare_instance_partition_image [0.084336s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_admin [0.270231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dee55df6-76dc-4618-b612-0ce26ec41c57 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": "f57e017b-36e3-44e4-b262-b6a7c75474bc", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/f57e017b-36e3-44e4-b262-b6a7c75474bc", "rel": "self"}, {"href": "http://localhost/deploy_templates/f57e017b-36e3-44e4-b262-b6a7c75474bc", "rel": "bookmark"}]}]} {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_http_forwarded_proto_https [0.212018s] ... ok {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_ipv6_url [0.205074s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_436_owner_member_cannot_delete_volume_target [0.290087s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/9b494aed-ff93-41aa-bd3e-a513fde209ba GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2aa09c38-eddc-4040-8e8f-f6836e881af7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_member [0.273183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-288b8c36-023c-4211-aa35-482f3d533f50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.386974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_allowed_origin_header [0.155784s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.154807s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_get_observer [0.275023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2567661b-6018-490f-8942-57af2ae1368b 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": "a5293456-b93a-4deb-877f-832d83347c9f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/a5293456-b93a-4deb-877f-832d83347c9f", "rel": "self"}, {"href": "http://localhost/deploy_templates/a5293456-b93a-4deb-877f-832d83347c9f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_437_lessee_member_cannot_delete_volume_target [0.271337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/c704fe5c-3827-491d-a32e-d45409b2536c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b0490aa5-b9f9-4c16-af2a-412e7eec271c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_bad_origin_header [0.178728s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.193394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_blank_origin_header [0.182192s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.265024s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/115f21cb-3d75-44e7-b9c0-c6c1c73ce97c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aec90b12-7792-4fdc-90fc-93eaacd524cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "115f21cb-3d75-44e7-b9c0-c6c1c73ce97c", "created_at": "2025-05-22T18:23:20.014186+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/115f21cb-3d75-44e7-b9c0-c6c1c73ce97c", "rel": "self"}, {"href": "http://localhost/deploy_templates/115f21cb-3d75-44e7-b9c0-c6c1c73ce97c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_third_party_admin_cannot_delete_volume_target [0.272830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/339110b6-ae6c-4fe9-a6ff-c0ca1ce699ca GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-276277d5-7a4c-4678-8525-283e419b972c X-Openstack-Ironic-Api-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 339110b6-ae6c-4fe9-a6ff-c0ca1ce699ca could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.194456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_no_origin_header [0.165524s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.135121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.262990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/75efde91-5796-4c43-9ffb-5f2014deb3bc WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-771034a9-cd8c-4de9-89f0-86736d100624 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.241086s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.324613s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/5c771f80-9924-4d95-8c69-5b21a39cba3d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27a631cf-9dee-4703-be32-668e09b4b70f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5c771f80-9924-4d95-8c69-5b21a39cba3d", "created_at": "2025-05-22T18:23:20.564904+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5c771f80-9924-4d95-8c69-5b21a39cba3d", "rel": "self"}, {"href": "http://localhost/deploy_templates/5c771f80-9924-4d95-8c69-5b21a39cba3d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso [0.131443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_glance_image [0.091273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.161271s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_token_invalid [0.767482s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_439_service_cannot_delete_volume_target [0.927179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/253a55b7-3aff-4081-9bee-757be41cf8cd GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-97462201-a1cc-4250-b6b8-5583cbaace62 X-Openstack-Ironic-Api-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 253a55b7-3aff-4081-9bee-757be41cf8cd could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.370182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/804f921f-f5e8-4e0b-9826-048fbab66276 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-414779cb-3ca8-4db3-9fee-95ea02aa1df1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "804f921f-f5e8-4e0b-9826-048fbab66276", "created_at": "2025-05-22T18:23:20.883522+00:00", "updated_at": "2025-05-22T18:23:21.067197+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/804f921f-f5e8-4e0b-9826-048fbab66276", "rel": "self"}, {"href": "http://localhost/deploy_templates/804f921f-f5e8-4e0b-9826-048fbab66276", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.137236s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_non_default_ssl_min_version_is_set [0.148959s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.169390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/4516bb59-d9b6-4117-b3cc-693cc30264bc WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7cd1a465-626b-4fba-a2ae-6076fd35a3fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.132043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_440_owner_reader_can_get_volume_connectors [0.249258s] ... 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-1a354bbc-1d13-4ae4-90c1-20d670c4dc41 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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect [0.192722s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection [0.083526s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.178531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/88475756-7f27-460f-a090-63b26a9997ef WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-69595e5c-6ea0-4f42-9d86-0a37058b1795 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing [0.093655s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_owner_service_can_get_volume_connectors [0.200827s] ... 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-a3629ac7-be36-4e30-bd94-a4fb85e06d6e 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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect_3_slashes [0.185766s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.158945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/c08c18d0-d804-41e7-b143-6da25a92186e GOT Response: 204 No Content Openstack-Request-Id: req-6d9bd5d7-af4c-4baf-b3ee-9adb877ae182 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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance [0.163000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_is_not_set [0.145106s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_442_lessee_reader_can_get_node_volume_connectors [0.188350s] ... 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-b4f8a6fa-ab25-4574-922f-b6ef23030c2f 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": "eba449f1-9e72-498e-b3a9-e4906669a059", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/eba449f1-9e72-498e-b3a9-e4906669a059", "rel": "self"}, {"href": "http://localhost/volume/connectors/eba449f1-9e72-498e-b3a9-e4906669a059", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.167200s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/30af506c-278c-4563-a2fe-445de4ddb237 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fedc32de-67d5-45c4-8aa2-b4df12541107 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver [0.171329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_exc [0.072667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.120960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/a30a9cc4-ec36-4d3a-8301-7b1bb0169bb7 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b21da9c7-fb2a-4535-97ae-f9fc6661099f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_not_set_by_default [0.208607s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_443_third_party_admin_cannot_get_node_volume_connectors [0.208996s] ... 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-cf4564eb-5ad1-485b-8fcd-0c52b46fb9f1 X-Openstack-Ironic-Api-Maximum-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.IloVirtualMediaBootTestCase.test_validate_rescue [0.109312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_admin [0.212041s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/b252e921-8eae-4650-95fc-74475ff7381f Openstack-Request-Id: req-4473238c-d32d-4c8e-8295-43dd1d353d73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b252e921-8eae-4650-95fc-74475ff7381f", "created_at": "2025-05-22T18:23:22.091612+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b252e921-8eae-4650-95fc-74475ff7381f", "rel": "self"}, {"href": "http://localhost/chassis/b252e921-8eae-4650-95fc-74475ff7381f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/b252e921-8eae-4650-95fc-74475ff7381f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b252e921-8eae-4650-95fc-74475ff7381f/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated [0.148635s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_err [0.309033s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_444_service_cannot_get_node_volume_connectors [0.315466s] ... 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-00ea45ac-4466-41eb-929d-a619b884d551 X-Openstack-Ironic-Api-Maximum-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.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.149051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_member [0.230111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fde18a90-cf93-4493-a9da-cea281b02d52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.073444s] ... ok {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_ok [0.195946s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.065108s] ... ok {3} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.053789s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_owner_reader_can_get_node_volume_targets [0.217292s] ... 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-448881d1-ccbd-4bc7-8937-04e6bea87c16 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"}]} {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.066600s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.067588s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_post_observer [0.198897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a80ead29-34f4-44f6-807b-7e5436e7f871 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.082243s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.077721s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.072061s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.098637s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_owner_service_can_read_get_node_volume_targets [0.219930s] ... 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-d2065e94-c38d-4819-b124-5e48896077a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.089624s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca [0.113208s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.064578s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_admin [0.302287s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7d30c26-35e9-450d-89f4-1134139c37d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.110472s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.085568s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_member [0.104295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5c131a66-65d9-4cfc-8c84-a77d11d5bb5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.087900s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_lessee_reader_can_get_node_volume_targets [0.304344s] ... 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-8d12d69d-1491-46a6-a89f-3932fab0433e 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": "1b68de99-91ad-4fa3-85b4-3a35a77cb994", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1b68de99-91ad-4fa3-85b4-3a35a77cb994", "rel": "self"}, {"href": "http://localhost/volume/targets/1b68de99-91ad-4fa3-85b4-3a35a77cb994", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.107649s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_get_observer [0.135470s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64db72fa-e4e8-4309-a2d1-014f327baf59 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.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.067070s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.111890s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_admin [0.106699s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9130d83f-f057-4b58-b385-0cea0d0fe92b 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-22T18:23:23.139897+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.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.103724s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.103590s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.107995s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir [0.099893s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_448_third_part_admin_cannot_read_node_volume_targets [0.296785s] ... 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-ec7ceaba-fb90-48fa-99c2-87decb29b899 X-Openstack-Ironic-Api-Maximum-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.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_member [0.156251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eeac139d-1b4d-400c-9106-14abcd0c2658 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.099138s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file [0.099627s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_detail_get_observer [0.117334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e65b5d3-0380-4c3e-828f-37256bcbb40b 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-22T18:23:23.394540+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.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.079130s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.119957s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.062018s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.074683s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.185376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0cfd9da-0e6d-4fbf-87fc-a9195be52882 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-22T18:23:23.564982+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_449_service_cannot_read_node_volume_targets [0.353327s] ... 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-5d9c7328-a19c-41cd-8052-32617a83fe89 X-Openstack-Ironic-Api-Maximum-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_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.149043s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.079005s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_member [0.110197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-23643719-bbba-4514-b1e9-92f39f4ca233 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.086931s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.126444s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.104943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9470951-867a-44a0-9cdc-dc95b3bb6c1c 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-22T18:23:23.821375+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.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.093756s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_owner_reader_cannot_get_drivers [0.197574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b06644e3-fce1-4f03-b33e-d194b48a3dd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.127451s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.095021s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.118945s] ... 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-82032415-4148-435f-9bbe-bf08a3984d29 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-22T18:23:23.925866+00:00", "updated_at": "2025-05-22T18:23:23.979979+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.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.121117s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.092323s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_451_lessee_reader_cannot_get_drivers [0.182304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-82bb5b29-1b7e-49a3-a55d-a8003511fa8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.109329s] ... 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-f6ccd9e4-8514-486c-964c-e212389a9d69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false [0.081220s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.101843s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.116422s] ... 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-8ce6fcff-92db-49f8-93f7-f2f3cbcfd880 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_452_third_party_admin_cannot_get_drivers [0.185704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4b5e2adb-8dab-4f11-8181-1743be766cbf X-Openstack-Ironic-Api-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.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true [0.105295s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.126402s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value [0.084517s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.090583s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false [0.094260s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_453_service_cannot_get_drivers [0.210848s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a8cb2154-5229-482c-9069-23ac83b46009 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.109295s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.167185s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.122268s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_454_owner_reader_cannot_get_drivers_vendor_passthru [0.175141s] ... 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-fc099b78-5979-42c8-846b-24d72af4774a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.087242s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.152933s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.123814s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_455_lessee_reader_cannot_get_drivers_vendor_passthru [0.207815s] ... 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-47034a8a-06cc-4493-9189-18d764c3ad73 X-Openstack-Ironic-Api-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.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.143028s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.104007s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.748774s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-f760a6ec-5694-424a-a334-190adf7a8ab4 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.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.132020s] ... ok {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.140901s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.148104s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0d16feab-3212-4d8d-bd70-8571763e6be9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.097807s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_456_third_party_admin_cannot_get_drivers_vendor_passthru [0.344799s] ... 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-60df1fee-06d4-48b1-bf02-6cc79d0447ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.069560s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean [0.220810s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.059157s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.232004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6e6c41c9-f754-4dc6-b598-284b5d6bce6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate [0.051513s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_457_service_cannot_get_drivers_vendor_passthru [0.183564s] ... 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-ce60722c-79d5-4f7d-a30f-8f7c801b2cab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate_some [0.078553s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy [0.211157s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_all [0.055587s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_458_owner_reader_can_get_bios_setttings [0.198736s] ... 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-50ee8ac0-45d8-417f-965e-ff6344e68b76 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_admin [0.341282s] ... 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-ebf90f22-fc4c-4e4c-a1d0-b717d1968f5b 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": "ad333ac8-d0c0-4f82-a19a-37560b9ce0bb", "created_at": "2025-05-22T18:23:25.548836+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/ad333ac8-d0c0-4f82-a19a-37560b9ce0bb", "rel": "self"}]}]} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean [0.277854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_with_limit [0.292125s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_459_lessee_reader_can_get_bios_settings [0.226325s] ... 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-550b8037-209e-4127-95ed-d2eb4670d827 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": []} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_460_third_party_admin_cannot_get_bios_settings [0.217732s] ... 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-1c54085f-7de7-44ca-9ae5-30664752f9f1 X-Openstack-Ironic-Api-Maximum-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.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_member [0.375736s] ... 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-01b8da7b-5565-4896-baae-f443195e40b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy [0.337225s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.428160s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_461_service_can_get_bios_setttings_owner_project [0.236585s] ... 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-edece2f6-f43e-4330-aa17-bcbf8e0a8f75 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_observer [0.268641s] ... 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-0a271277-32d8-42bf-922e-6818e8ce90bb 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": "2d33a0a6-a78b-45ea-b89e-e0255f294150", "created_at": "2025-05-22T18:23:26.282458+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2d33a0a6-a78b-45ea-b89e-e0255f294150", "rel": "self"}]}]} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean [0.236308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_462_service_cannot_get_bios_setttings [0.243871s] ... 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-c5c8de59-5991-4d83-8ce2-44d65224a0a5 X-Openstack-Ironic-Api-Maximum-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.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_admin [0.235143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/faa714e5-bc07-4ced-bf3f-50a98a69eed0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb32fe3d-13cf-46fa-bb2e-79c555558a8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "faa714e5-bc07-4ced-bf3f-50a98a69eed0", "created_at": "2025-05-22T18:23:26.514405+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/faa714e5-bc07-4ced-bf3f-50a98a69eed0", "rel": "self"}]} {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [0.437703s] ... ok {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.058036s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_member [0.198746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/87cac7dc-9851-4dd4-a1c7-608b3dfafdec WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0fe08b47-40ba-442c-8b64-b54f32d660d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_463_owner_reader_cannot_get_conductors [0.249700s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-075942b1-86d6-432b-b194-53e0b8d77a7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_464_lessee_reader_cannot_get_conductors [0.162597s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-052e2de9-074e-4026-a835-f76898deb675 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_acl.TestRBACProjectScoped.test_project_scoped_465_third_party_admin_cannot_get_conductors [0.084212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-428d7cea-ca89-424d-a529-6b2a64d768c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_306_node_history_get_entry_observer [0.277371s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/532e6819-98d0-4c7e-b92e-4ad5fad0203c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21c9a7dc-3b19-49ad-b55e-286f587e3a0b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "532e6819-98d0-4c7e-b92e-4ad5fad0203c", "created_at": "2025-05-22T18:23:26.988784+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/532e6819-98d0-4c7e-b92e-4ad5fad0203c", "rel": "self"}]} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy [0.725770s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.132886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf4ef307-86f0-4d32-877d-af638f413407 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": "4ce392b5-d205-4383-b0f4-d19299591206", "created_at": "2025-05-22T18:23:27.104410+00:00", "updated_at": "2025-05-22T18:23:27.106435+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/4ce392b5-d205-4383-b0f4-d19299591206", "rel": "self"}, {"href": "http://localhost/allocations/4ce392b5-d205-4383-b0f4-d19299591206", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.462004s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table [0.090126s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean [0.222049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_467_lessee_reader_can_get_allocations [0.123493s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d2ab2e63-7fbc-416c-9a2a-963f5e49dbb4 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": "3a2ed20f-6700-43c8-ba56-b858ed2c8668", "created_at": "2025-05-22T18:23:27.269595+00:00", "updated_at": "2025-05-22T18:23:27.275795+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/3a2ed20f-6700-43c8-ba56-b858ed2c8668", "rel": "self"}, {"href": "http://localhost/allocations/3a2ed20f-6700-43c8-ba56-b858ed2c8668", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_468_owner_reader_can_get_their_allocation [0.091961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/a569a66f-74e9-48c2-8ad7-2fc8dccb8429 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2aea183f-ad78-45b1-97fc-c056cbae5b7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a569a66f-74e9-48c2-8ad7-2fc8dccb8429", "created_at": "2025-05-22T18:23:27.352559+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/a569a66f-74e9-48c2-8ad7-2fc8dccb8429", "rel": "self"}, {"href": "http://localhost/allocations/a569a66f-74e9-48c2-8ad7-2fc8dccb8429", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_469_lessee_reader_can_get_their_allocation [0.089174s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/5d088f93-1141-4cf1-875f-cc50cf96e96d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3471eec4-0462-4424-9b66-cf3fa19a2717 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5d088f93-1141-4cf1-875f-cc50cf96e96d", "created_at": "2025-05-22T18:23:27.458262+00:00", "updated_at": "2025-05-22T18:23:27.459654+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/5d088f93-1141-4cf1-875f-cc50cf96e96d", "rel": "self"}, {"href": "http://localhost/allocations/5d088f93-1141-4cf1-875f-cc50cf96e96d", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin [0.266111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-597e3ffc-3ed2-4162-8205-4862ebedcd89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy [0.227995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_470_owner_admin_can_delete_their_allocation [0.101726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/be3e738e-1c88-4c65-b830-d7e29627f81f GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5b224637-fd99-4114-a4a0-2d2eab72620c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_471_owner_manager_can_delete_their_allocation [0.130131s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/e25a7be4-bdd4-473d-83a3-9afe59960af5 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9c824ce7-df39-4532-93cb-342eef4a324e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean [0.239264s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member [0.249367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bf85203b-c7c2-46ad-867a-bf809f25d0ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.540207s] ... ok {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.043466s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_472_lessee_admin_can_delete_their_allocation [0.175983s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/42994529-3893-447f-8c91-d36bcc11e791 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ec22bb20-b6ae-4fbd-ad1f-26afcaa23a1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy [0.215572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer [0.244427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8300cc8f-7333-46bc-9f18-797d86952bd8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin [0.186009s] ... 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-2f74523a-8946-43bb-8986-d284d7e43f6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_activate_license [0.247411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.489967s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_473_lessee_manager_can_delete_their_allocation [0.482617s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/df39b9c7-c28d-4e30-8c32-51e075afa7bf GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-919a6a4a-074c-4440-8d70-60602861cb65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member [0.207258s] ... 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-b1bc1e0b-52dd-45b1-8bdb-853939ea902a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.221552s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_474_owner_member_can_delete_their_allocation [0.162369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/f12ecd44-b407-4eaa-84c3-ccd4b7c5eee6 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d649273b-2b78-4174-910c-75e6c8819499 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_475_lessee_member_can_delete_their_allocation [0.125295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/2532913b-fa0a-47d3-a86a-18ad6f8aaad1 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3395aa1f-72f9-4879-8b52-70aefceb491b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer [0.302980s] ... 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-3c68aab6-2751-4b92-a848-370395349fa5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_add_https_certificate [0.271537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_476_owner_member_can_patch_allocation [0.160838s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/785548c6-e8ce-4200-a2f3-23a2da18b3c6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a98c49e-af29-4635-bcbc-ff634d574906 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "785548c6-e8ce-4200-a2f3-23a2da18b3c6", "created_at": "2025-05-22T18:23:28.750665+00:00", "updated_at": "2025-05-22T18:23:28.809759+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/785548c6-e8ce-4200-a2f3-23a2da18b3c6", "rel": "self"}, {"href": "http://localhost/allocations/785548c6-e8ce-4200-a2f3-23a2da18b3c6", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl [0.245742s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.655361s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_477_lessee_member_can_patch_allocation [0.176762s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/3eda851a-c257-4f03-8096-98bf645450dc WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2bb3c7f5-85b6-4017-bc19-7d791ed85d9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3eda851a-c257-4f03-8096-98bf645450dc", "created_at": "2025-05-22T18:23:28.913835+00:00", "updated_at": "2025-05-22T18:23:28.989299+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/3eda851a-c257-4f03-8096-98bf645450dc", "rel": "self"}, {"href": "http://localhost/allocations/3eda851a-c257-4f03-8096-98bf645450dc", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin [0.314067s] ... 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-d62cbc72-3d60-467c-9889-5cfe2c4bf75d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table [0.060614s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl [0.148579s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_478_third_party_admin_can_get_allocations [0.198580s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5419c69c-654e-48db-b257-743d53912d40 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.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.137194s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin [0.194674s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0537033f-38a2-4e2d-9f3e-2420f54f7467 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception [0.191930s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.095175s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.079270s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin [0.167782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-159cbe95-5954-4d6c-af6b-9867a0739113 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.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.157907s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.075839s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.059503s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_479_third_party_admin_can_create_allocation [0.339570s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-81d6988e-f473-4226-b8f2-fe7e044a481c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.038174s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin [0.172091s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f399052f-5ba9-465a-b640-efc845be1fa7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.042052s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.155717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.062819s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.054915s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member [0.175680s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9fd0dd06-b87a-4098-857a-040b49bc192d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TestRBACProjectScoped.test_project_scoped_480_third_party_admin_cannot_create_allocation_with_owner_node [0.246357s] ... 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-6bf1e29d-be15-4dec-9a2d-aabac9579cc7 X-Openstack-Ironic-Api-Maximum-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_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.169290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.057651s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.043245s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.030081s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.038853s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys [0.121139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.038027s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer [0.244671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a3fa625f-20b3-47bf-8aba-d33d1c902d1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors_with_sqlite [0.050742s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.045315s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors_with_sqlite [0.037463s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr [0.175753s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_481_third_party_admin_cannot_create_allocation_with_candidates_not_owned [0.323232s] ... 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-89919a7c-218c-4866-9209-d2a08173c57f X-Openstack-Ironic-Api-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.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.089595s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component [0.110144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin [0.214612s] ... 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-60428530-4f55-42fa-bb2f-986e382f8d1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.033839s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.044229s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.126497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.057978s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member [0.162891s] ... 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-a3fb4492-fc51-44a6-b416-995bc0e24b64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.059164s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.033469s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_482_owner_admin_can_create_allocation_with_their_uuid [0.331053s] ... 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-7d9538a3-e2e0-49bd-b9a5-52394f48b574 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_management.IloManagementTestCase.test_get_boot_device_next_boot [0.130679s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.038773s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_offline [0.030147s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.083461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer [0.197657s] ... 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-adb70c1b-1420-435d-8a2e-c7032bcd43b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.080129s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.037259s] ... ok {3} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.030559s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.127993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.043910s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.038390s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_483_owner_manager_can_create_allocation_with_their_uuid [0.340949s] ... 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-25316200-d6f7-4e8a-9b25-52e1e0491ac3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.223881s] ... 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-cdcebfc9-e9f2-4b9f-9125-eef8a5b9dc88 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_get_boot_mode [0.127292s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail [0.083410s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.094616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member [0.183387s] ... 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-efc164f8-7e56-46ec-a7b1-c9267324e396 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_484_third_party_admin_cannot_read_an_allocation [0.291646s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/c0b5151b-0c7c-4db5-aab7-03110aecd7ee WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-786b026b-e80c-4374-8d00-ff09130e197b X-Openstack-Ironic-Api-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 c0b5151b-0c7c-4db5-aab7-03110aecd7ee could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.092318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.364348s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.055110s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.094002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.185046s] ... 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-ed002be1-c6c9-46d0-acda-09f024dce9c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.065550s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ [0.053048s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.042196s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.040757s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ [0.080594s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.038344s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_485_third_party_admin_cannot_patch_an_allocation [0.334935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/a6e88902-7a66-4c0f-a1f0-8f51e941dfe7 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2b9d4853-b410-430f-afbd-88bb9567419f X-Openstack-Ironic-Api-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 a6e88902-7a66-4c0f-a1f0-8f51e941dfe7 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ [0.114710s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.265390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-26e0328a-4b77-4d32-ad19-1d82ad024408 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.096414s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.041221s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.032197s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.041880s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.176629s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.045222s] ... ok {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.040478s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_486_third_party_admin_cannot_delete_an_allocation [0.339290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/5cc95b16-3ba0-4dc8-b9d1-e1d58371ed84 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5a35839e-dabf-4c5c-8c4b-d05a36bd89c4 X-Openstack-Ironic-Api-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 5cc95b16-3ba0-4dc8-b9d1-e1d58371ed84 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member [0.299447s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a066bb7d-d48a-486a-90cb-c1a8262c46ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.099379s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.189050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_487_owner_reader_can_read_node_allocation [0.104772s] ... 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-3e59c248-90ca-4f48-809d-11b8cf8ff72e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b3c8309a-10c7-473a-a45f-080c10d6a7d5", "created_at": "2025-05-22T18:23:31.835406+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/b3c8309a-10c7-473a-a45f-080c10d6a7d5", "rel": "self"}, {"href": "http://localhost/allocations/b3c8309a-10c7-473a-a45f-080c10d6a7d5", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.100495s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.180874s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.146940s] ... 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-05827f29-4bb5-4d67-9d98-72c7ca33eeda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5e5e09b2-8026-4ba9-a27e-e06632445fa6", "created_at": "2025-05-22T18:23:31.970858+00:00", "updated_at": "2025-05-22T18:23:31.972404+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/5e5e09b2-8026-4ba9-a27e-e06632445fa6", "rel": "self"}, {"href": "http://localhost/allocations/5e5e09b2-8026-4ba9-a27e-e06632445fa6", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.112615s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.276207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5fcf3d8f-8f71-4539-bd4f-93809f340a45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.128807s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.108633s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_489_third_party_admin_cannot_read_node_allocation [0.150030s] ... 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-0127b1ae-1b6d-4c15-a1ec-95963ac8b473 X-Openstack-Ironic-Api-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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.107335s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.151013s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin [0.269582s] ... 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-89ef051f-c72c-4646-b6b2-6197e883bcdb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_490_owner_admin_can_delete_allocation [0.256813s] ... 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-dd13e7ee-e3df-494d-b772-3d1b18a42194 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.141289s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.081988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.081482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.181517s] ... 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-79bd00be-ade0-4647-b178-2af4f444d961 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member [0.301294s] ... 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-826e0a9b-ed31-45b0-9918-f03d9bed5d0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.112961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_492_lessee_admin_can_delete_allocation [0.130929s] ... 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-3a4b71a8-af86-4bf1-900c-af9360bdd02a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_493_lessee_manager_not_delete_allocation [0.110036s] ... 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-18a9de0a-2d4b-4863-8645-035bcd8e0d2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_management.IloManagementTestCase.test_security_parameters_update [0.211467s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer [0.347927s] ... 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-aeff3cfb-73f4-4dce-975a-c312f7a0dc55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_494_third_party_admin_cannot_delete_allocation [0.151163s] ... 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-7c09a34f-8159-4ff2-ab7c-63c7d967e98f X-Openstack-Ironic-Api-Maximum-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_management.IloManagementTestCase.test_set_boot_device_fail [0.137861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_495_owner_reader_cannot_get_deploy_templates [0.103416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-247708cf-09d3-47c6-8c49-860fe67580d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.848368s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_496_lessee_reader_cannot_get_deploy_templates [0.097828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-803599fd-45e6-4e3c-b288-679af2223695 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.102507s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.157846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin [0.307887s] ... 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-79346bad-421f-4ea0-9e4d-6bb8bee30aea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_497_third_party_admin_cannot_get_deploy_templates [0.227321s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-521fa977-a482-4b6a-9fb2-6c2eaeed80fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok [0.202261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member [0.168122s] ... 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-ded50945-423d-4427-a0e1-aac89d3d3fa4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.144049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer [0.208293s] ... 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-cc403008-5a69-4f5f-8913-4901c93643de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.134630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_498_third_party_admin_cannot_post_deploy_template [0.325772s] ... 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-a55bee5a-55e5-4db2-ae4a-53415a93485e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.635517s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.176050s] ... 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-813e50e4-26dd-411e-9c8e-7646307d4c8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_set_boot_mode [0.142735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.067552s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_499_service_cannot_get_deploy_templates [0.225357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-863810f9-2513-4a6e-ab69-5702b63ff3ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member [0.200571s] ... 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-c6955975-c3ae-49e3-b1e9-8d1b1aab39dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_500_service_cannot_post_deploy_template [0.188599s] ... 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-7f436b39-a36d-4409-a526-073e64e9a659 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.TestRBACProjectScoped.test_project_scoped_501_owner_reader_cannot_access_chassis [0.283643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-22110204-629d-4d5f-8f69-3275a4af3b19 X-Openstack-Ironic-Api-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.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail [0.716990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.759189s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_502_lessee_reader_cannot_access_chassis [0.238190s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-129e8eb1-a42e-4e6f-8fe9-f22f782ac00a X-Openstack-Ironic-Api-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.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.102816s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.170536s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.716616s] ... 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-856b4fad-32e4-4ff0-b8cd-69078511ad35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.065119s] ... ok {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.058154s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_503_third_party_admin_cannot_access_chassis [0.232292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8ec4c420-0413-46ba-a6ed-6ce4a6754882 X-Openstack-Ironic-Api-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.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.149005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.095278s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.184580s] ... 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-a10d1096-996c-44ff-9332-7974a8b215bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.090231s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.177293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.061072s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_504_third_party_admin_cannot_create_chassis [0.225523s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4318c1f3-2262-4f2e-a4f3-f729805efcca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.210647s] ... 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-369addd6-502f-4703-8e80-47952a9a6c40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.102675s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.183193s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.078048s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.188443s] ... 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-4d36863d-946a-4c65-a524-6efdc7dd6f2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_505_service_cannot_access_chassis [0.243242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d40d501b-72c7-45b8-ab82-39b6ea29f242 X-Openstack-Ironic-Api-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.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.104694s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_506_service_cannot_create_chassis [0.156468s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9a2a4769-7de6-4d42-81b2-e523aaf17fb1 X-Openstack-Ironic-Api-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.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.116517s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.244290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.096531s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.307378s] ... 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-2b2aa619-ddc5-48af-8a19-c53c7c692339 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold [0.179012s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.101778s] ... ok {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.066932s] ... ok {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.055606s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.163101s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.073331s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_507_node_history_get_admin [0.452267s] ... 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-2c2c7232-eece-4776-b7be-dd72809f80d0 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": "76ff36df-7193-4461-ab52-c0ebc9846b6d", "created_at": "2025-05-22T18:23:35.952783+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/76ff36df-7193-4461-ab52-c0ebc9846b6d", "rel": "self"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.335545s] ... 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-042dda8f-184f-4e03-98b8-159c82a870d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.088676s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.163461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.074924s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_508_node_history_get_member [0.156605s] ... 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-fb460527-8030-44d1-8204-6ae67cb43dbc 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": "b7f5d2ad-77c5-4f16-ae86-d989b744eeda", "created_at": "2025-05-22T18:23:36.111797+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/b7f5d2ad-77c5-4f16-ae86-d989b744eeda", "rel": "self"}]}]} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.109519s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.197607s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.248170s] ... 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-4112cda7-11c0-4ef3-939a-b3958ddd6437 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list [0.097630s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.079519s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_509_node_history_get_reader [0.290869s] ... 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-1d3b4d4d-5191-4351-9e05-78b95d7dca2a 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": "d02fd0ac-8aff-482a-8cd8-172628b67fc9", "created_at": "2025-05-22T18:23:36.359359+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/d02fd0ac-8aff-482a-8cd8-172628b67fc9", "rel": "self"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.189153s] ... 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-83140229-f05a-4366-93ed-1093bd9fc153 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.111774s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.246666s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.114328s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_510_node_history_get_service [0.235327s] ... 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-6b625442-bae5-492a-8912-cbd7825959dc 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": "515ba0b9-046f-47b9-b934-abbf1724482a", "created_at": "2025-05-22T18:23:36.605363+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/515ba0b9-046f-47b9-b934-abbf1724482a", "rel": "self"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.236380s] ... 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-2dea1211-5677-411a-a1b5-64770fb9150d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.197009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists [0.119690s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.130177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.111472s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_511_node_history_get_service_cannot_be_retrieved [0.255701s] ... 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-cd24f130-c2d5-4459-a489-7dbd6ffd41f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.093535s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.308468s] ... 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-a7a0976a-8fe5-40b6-8902-8f693abf7080 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.190560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.079349s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.074090s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.109552s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.276914s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/289a9652-ef03-4285-954e-938fddea1332 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12963b5d-b49d-4f83-ae49-2f102378e5e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "289a9652-ef03-4285-954e-938fddea1332", "created_at": "2025-05-22T18:23:37.118577+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/289a9652-ef03-4285-954e-938fddea1332", "rel": "self"}]} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.126717s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.134636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.278897s] ... 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-19501725-b7f5-40a5-9426-fd9d6fe9ba22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.135589s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_513_node_history_get_entry_member [0.232534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/2281235b-ca7e-4686-bb8b-94a12847586b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a117990-cae2-490e-bbf9-42e530b9b2b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2281235b-ca7e-4686-bb8b-94a12847586b", "created_at": "2025-05-22T18:23:37.364361+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/2281235b-ca7e-4686-bb8b-94a12847586b", "rel": "self"}]} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.179011s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [0.082088s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.087237s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.062050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.300716s] ... 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-15d0d8a0-4d53-44ac-af8e-81d2410c8e28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_firmware_component_list_after_destroying_a_node_by_uuid [0.114855s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.093015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.245039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/59b9287d-1548-421c-a921-b9c3bb50ac01 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d476625b-88d2-4fa1-a6c7-9610569cc8c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "59b9287d-1548-421c-a921-b9c3bb50ac01", "created_at": "2025-05-22T18:23:37.621950+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/59b9287d-1548-421c-a921-b9c3bb50ac01", "rel": "self"}]} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.073761s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.089242s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.226910s] ... 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-f1b22d7c-f266-409d-830f-c87c752fd1ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance [0.107101s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_515_lessee_node_history_get_admin [0.200175s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/d7e4c14e-e2ba-406f-99ea-3744a4ef80a1/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dadb1667-e4a5-4b32-9422-df38a9fdaed2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d7e4c14e-e2ba-406f-99ea-3744a4ef80a1 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.151562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.052923s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.071159s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin [0.253419s] ... 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-53d44f9a-7479-4151-81ca-f56e0e71c3a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length [0.174544s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name [0.104975s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.087536s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_516_lessee_node_history_get_member [0.327530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/223d4965-5706-43b1-8e38-882a46b613a3/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-974e4324-ec43-4c1c-9a07-1175d075c735 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 223d4965-5706-43b1-8e38-882a46b613a3 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate [0.174008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.086266s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.068773s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member [0.269408s] ... 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-e794c633-d739-4a11-b51c-50b070f55981 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean [0.121088s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_517_lessee_node_history_get_reader [0.215558s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/8f67fa77-7ce6-4ddd-a3cc-12cf3b5513be/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d6601a7f-aef3-42ea-be3c-5930ea189938 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8f67fa77-7ce6-4ddd-a3cc-12cf3b5513be could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy [0.135826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer [0.173860s] ... 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-b68438f5-fd32-4d3d-8663-fb4691f6e8c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_518_lessee_node_history_get_entry_admin [0.187277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1cb53f4e-7ea2-4a4d-b0be-06a0b8405220/history/96d10eb4-f9d4-4e41-8a3f-341ded472412 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6e1ba39c-8e6d-4ebf-a73e-9b43551539c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1cb53f4e-7ea2-4a4d-b0be-06a0b8405220 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin [0.172534s] ... 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-d991953d-6110-4176-ba8b-0b5f2fbed9c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean [0.175117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_519_lessee_history_get_entry_member [0.199206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/d06bf58d-e1aa-4148-84e7-c7ca3d9bc0c2/history/cfd6cfeb-7db2-40eb-bc0e-df98eeb12bee WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a5acba44-a21a-4953-b5d1-84d0fef67776 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d06bf58d-e1aa-4148-84e7-c7ca3d9bc0c2 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy [0.168448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member [0.224307s] ... 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-135ba70b-4716-4ff6-9cf2-5021f428725a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.634977s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_520_lessee_node_history_get_entry_reader [0.201872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/70d17af7-db69-438c-9611-3efb6a33785e/history/974a10e2-6988-47a5-8051-b075f5029da6 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-548d18ad-d1be-4bb2-8e46-e67e3b807908 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 70d17af7-db69-438c-9611-3efb6a33785e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean [0.181599s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer [0.172092s] ... 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-a23800b4-90a4-4667-923b-165152a57ad9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.117774s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.057316s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_521_owner_service_node_history_get_entry_reader [0.186464s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/411b892e-738c-4100-83e4-84ddca7f4302 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d712de85-7c5a-4f3e-9c7e-6f8998f23174 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "411b892e-738c-4100-83e4-84ddca7f4302", "created_at": "2025-05-22T18:23:39.173023+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/411b892e-738c-4100-83e4-84ddca7f4302", "rel": "self"}]} {2} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy [0.145546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.103333s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.174406s] ... 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-c3b5947d-d5f3-42a4-b254-746771ff57af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.112696s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project [0.111068s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.134474s] ... 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-3a212613-10f1-4128-a1bb-73da68275075 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_522_third_party_admin_cannot_get_node_history [0.214821s] ... 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-95290a50-04c8-4467-bd65-e8b8cb17ff37 X-Openstack-Ironic-Api-Maximum-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_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.150253s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits [0.143083s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.137292s] ... 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-8a6440de-1711-4499-8931-d333edabe433 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.129293s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits [0.095852s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_523_node_history_get_entry_third_party_admin [0.261696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/f2924b35-b450-45fb-ac3d-b47263ed21b5 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b1975fba-1c0a-4806-9d19-95e2e5da4883 X-Openstack-Ironic-Api-Maximum-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_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.083888s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.202335s] ... 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-87494145-9dca-4b15-8978-806efb0c9257 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_ilo6_redirect [0.065152s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.088235s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits [0.239430s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.131249s] ... 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-f2a47a3e-add7-4d5d-a0e8-cd5a54de7042 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_524_node_history_get_entry_service [0.281240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/6de1c080-8ca1-43f3-a5fe-a216f44dc44f WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cb340258-29bb-499a-abe8-35d15dbda655 X-Openstack-Ironic-Api-Maximum-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.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.141454s] ... 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-bb45d7d6-854f-4df7-8c70-c363e1d72317 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin [0.097183s] ... 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-75bdfca1-2983-42fa-846c-f4d058516b55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.304682s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_525_node_inventory_get_admin [0.237646s] ... 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-5da95d87-e071-4c7e-ac3c-ca6ba945b751 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.api.test_acl.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member [0.105489s] ... 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-26efe854-7310-4a56-8bfe-8b89ba2bef1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.062910s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer [0.091555s] ... 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-33d7188b-503b-4d85-a1f6-b6537e05907d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.069504s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.066863s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin [0.082773s] ... 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-37d833d6-d304-4a1c-8bf4-030885b249a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_526_node_inventory_get_member [0.240501s] ... 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-09fbdb16-ef68-47e9-937b-0355502fb398 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.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.090611s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member [0.096292s] ... 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-1011eb0b-5b0c-47ab-9f7c-0e5257b41b04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.074875s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.077467s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer [0.162164s] ... 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-cbeede1d-b495-48c2-b92c-765604700f24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_527_node_inventory_get_reader [0.238371s] ... 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-a1c17795-3f81-44da-a8d2-ccc03764383a 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.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.153179s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin [0.164179s] ... 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-52bc327e-2884-47c7-8f11-c76b3b41389d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member [0.097581s] ... 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-0c181422-309b-4ab8-a324-aedbbb9a4079 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid [0.126264s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_528_lessee_node_inventory_get_admin [0.284741s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1061784e-67ba-4ec5-b54e-fc70f534b0c6/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-be486937-3ff7-4c9f-99fc-77e3c72ea228 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1061784e-67ba-4ec5-b54e-fc70f534b0c6 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_get_destroyed_after_destroying_a_node_by_uuid [0.086328s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_get_observer [0.123759s] ... 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-4a765e92-1791-44ff-98b5-a0917f539c85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_updated_for_node [0.070864s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_admin [0.103887s] ... 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-8e18c7d0-9502-46cf-a6c2-4272ed9edfa8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count [0.073581s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.077651s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_member [0.136295s] ... 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-9bdd8083-2193-4c0f-89ab-d91ecf4d8a49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_529_lessee_node_inventory_get_member [0.369746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/71cc5264-8bce-4076-8f95-2c4dde433090/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e84b724a-81cf-4873-8c08-785949c9821b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 71cc5264-8bce-4076-8f95-2c4dde433090 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_states_console_put_observer [0.120845s] ... 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-6965995d-d479-4628-a9ea-fb17405756d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.207578s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_530_lessee_node_inventory_get_reader [0.199944s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ec0dbe68-34d6-400c-a573-05991bc44bf6/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-15f4c9b6-1e3d-4f75-a111-de104b2c5289 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ec0dbe68-34d6-400c-a573-05991bc44bf6 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.145025s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.180843s] ... 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-d87bf921-74ca-4d36-8953-adc9365dfe47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_531_shard_get_shards_disallowed [0.134169s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-76823a97-3927-437c-8dfe-2a0fa0e98ccc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_nodes.DbNodeTestCase.test_release_non_locked_node [0.072081s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.034673s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release [0.053722s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.124978s] ... 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-ef599afb-f41d-44da-a460-d617a1e3569d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.053746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.039137s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.044880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.132541s] ... 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-385046bc-83e5-404f-b8fb-8de848d9533a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.116180s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node [0.077143s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_once_sqlite [0.134381s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.217900s] ... 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-564f0b24-2e48-4252-a2ae-df3ba1f0aff8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.api.test_acl.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.606718s] ... 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-6c01096e-fb38-4955-af32-7aec933b57d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_twice [0.167692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_535_parent_node_patch_by_reader [0.182366s] ... 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-56d0e083-9f72-4d11-bc73-60379b324e6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.184823s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_536_parent_node_patch_by_manager [0.161965s] ... 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-f834aefa-4986-4a5d-8ebd-652701f8d6c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.285781s] ... 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-759f79b8-dc49-4e7f-b9d4-289cfd614778 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.130783s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_537_parent_node_patch_by_cannot_see_node [0.095573s] ... 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-32003968-8002-444f-9410-0e1d08306e53 X-Openstack-Ironic-Api-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.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning [0.111960s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_538_parent_node_children_can_get_list_of_children [0.115020s] ... 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-58981e8c-843a-4e3c-a1d7-7c9cb0d83c71 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"}} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.267588s] ... 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-50da4033-fa32-4bcd-a0c1-a16b10ab4d81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_539_lessee_cannot_get_a_nodes_children [0.099312s] ... 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-8c491c8e-b1c9-4b94-a3fb-3b10b4320197 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.100389s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_540_owner_reader_can_get_firmware_components [0.106922s] ... 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-5a3a9d83-276b-4de5-976e-0d9a454907a0 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.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.148182s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_541_lessee_reader_can_get_firmware_components [0.100984s] ... 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-a64204dd-3619-448d-a9dd-e207ecbe7be1 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.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.264981s] ... 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-666f3db7-83ce-46ce-8b12-fe667130cbb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [1.172991s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.168128s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.093129s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.166116s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_542_third_party_admin_cannot_get_firmware_components [0.347486s] ... 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-f1364f10-fb39-4756-83cd-212cb0a7ef21 X-Openstack-Ironic-Api-Maximum-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.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.336448s] ... 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-254a92e7-7914-4a08-b7da-246e8b9cd773 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_543_service_can_get_firmware_components_owner_project [0.099448s] ... 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-5239d775-3b94-4ae2-a1fd-a449f4824300 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.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.187094s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.102317s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_544_service_cannot_get_firmware_components [0.148774s] ... 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-c4d8ccd8-d1d0-4618-ad01-a306b458e438 X-Openstack-Ironic-Api-Maximum-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.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.262737s] ... 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-1a83df0e-925e-4e7f-abe8-c2ee8f295723 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspecting [0.131908s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_545_runbooks_post_admin [0.128142s] ... 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/edca19f2-a264-42f4-a761-a873200d640d Openstack-Request-Id: req-dc142586-fdab-4209-8d20-0efad856fd47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "edca19f2-a264-42f4-a761-a873200d640d", "created_at": "2025-05-22T18:23:43.859889+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/edca19f2-a264-42f4-a761-a873200d640d", "rel": "self"}, {"href": "http://localhost/runbooks/edca19f2-a264-42f4-a761-a873200d640d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspectwait [0.146842s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_546_runbooks_post_manager [0.102151s] ... 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/7e24799c-61de-41b0-a5d6-1fdb2a4ba944 Openstack-Request-Id: req-72f6ba56-3231-4885-afec-399ed1498ab1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7e24799c-61de-41b0-a5d6-1fdb2a4ba944", "created_at": "2025-05-22T18:23:43.964615+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/7e24799c-61de-41b0-a5d6-1fdb2a4ba944", "rel": "self"}, {"href": "http://localhost/runbooks/7e24799c-61de-41b0-a5d6-1fdb2a4ba944", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.291899s] ... 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-af20f9f7-9d75-438f-a5b0-738bf27335b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.107252s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_547_service_post_runbook [0.102297s] ... 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/9ea05a4f-71ee-4af9-a286-27d2abb5312d Openstack-Request-Id: req-60cb7cf6-d41a-4101-bdcb-99b2269e9790 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9ea05a4f-71ee-4af9-a286-27d2abb5312d", "created_at": "2025-05-22T18:23:44.069405+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/9ea05a4f-71ee-4af9-a286-27d2abb5312d", "rel": "self"}, {"href": "http://localhost/runbooks/9ea05a4f-71ee-4af9-a286-27d2abb5312d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_548_third_party_admin_post_runbook [0.088423s] ... 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/1ad2366f-b335-4f2a-ac84-9af129f67a9f Openstack-Request-Id: req-99b7074e-a9ae-4381-95f9-304b9c409bf5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1ad2366f-b335-4f2a-ac84-9af129f67a9f", "created_at": "2025-05-22T18:23:44.165012+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/1ad2366f-b335-4f2a-ac84-9af129f67a9f", "rel": "self"}, {"href": "http://localhost/runbooks/1ad2366f-b335-4f2a-ac84-9af129f67a9f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspecting [0.118727s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_549_runbooks_post_public_admin [0.122325s] ... 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-033ad039-5670-4405-a54d-2de56a17206f X-Openstack-Ironic-Api-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.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspectwait [0.120986s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.241435s] ... 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-5200f916-2baf-4d9e-98cf-114648b8fb2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_550_runbooks_post_public_manager [0.087806s] ... 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-342d945a-3362-4e28-95df-f89c2fc28b5a X-Openstack-Ironic-Api-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_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.123495s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.122497s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_551_runbooks_post_public_service [0.091797s] ... 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-6d964f28-7eb2-40a3-b00b-66c79c8a9aa9 X-Openstack-Ironic-Api-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_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.103522s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.108325s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.245212s] ... 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-19bdf5e1-fd24-4a59-886e-5e0aa16746de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_552_runbooks_patch_admin [0.147954s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e6b9662a-9487-47ff-b61c-5d02af9104b3 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e5a2b72-28c3-45fa-a2b4-6841a65f9237 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e6b9662a-9487-47ff-b61c-5d02af9104b3", "created_at": "2025-05-22T18:23:44.528369+00:00", "updated_at": "2025-05-22T18:23:44.626337+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e6b9662a-9487-47ff-b61c-5d02af9104b3", "rel": "self"}, {"href": "http://localhost/runbooks/e6b9662a-9487-47ff-b61c-5d02af9104b3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.113010s] ... ok {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.099632s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_553_runbooks_patch_manager [0.188575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/00ed39e6-6d20-48ff-94c9-dbc1336bc201 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6be16bb4-aa11-4a5f-8e33-cbd943c97257 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "00ed39e6-6d20-48ff-94c9-dbc1336bc201", "created_at": "2025-05-22T18:23:44.687690+00:00", "updated_at": "2025-05-22T18:23:44.817953+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/00ed39e6-6d20-48ff-94c9-dbc1336bc201", "rel": "self"}, {"href": "http://localhost/runbooks/00ed39e6-6d20-48ff-94c9-dbc1336bc201", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.308690s] ... 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-99090298-6055-4586-8ff5-bbf6424e3de1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.174924s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_554_service_patch_runbook [0.190280s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/0359920b-dcf6-49d7-820f-56312e2abfc2 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b859f17-3e52-4f0b-bb91-bb6d7417d622 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0359920b-dcf6-49d7-820f-56312e2abfc2", "created_at": "2025-05-22T18:23:44.914560+00:00", "updated_at": "2025-05-22T18:23:45.011159+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0359920b-dcf6-49d7-820f-56312e2abfc2", "rel": "self"}, {"href": "http://localhost/runbooks/0359920b-dcf6-49d7-820f-56312e2abfc2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_555_project_admin_delete_runbook [0.083100s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/6fd74464-eeaa-40e3-8125-a2ed9b38da05 GOT Response: 204 No Content Openstack-Request-Id: req-1510b3a3-84f1-4a2b-922c-23c79569582c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.275657s] ... 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-9b236b4e-e76b-4ef0-b2ee-cdfaab00e84e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_556_project_manager_delete_runbook [0.108432s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/67f92895-06ae-493b-8443-3816bdcfad61 GOT Response: 204 No Content Openstack-Request-Id: req-f4d6c8e2-e21f-40ff-8a79-3ee496dcd66c 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_557_service_get_runbooks [0.100029s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56d4c264-1b49-4436-a4b8-911838df193b 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": "3edef6d4-c794-4d55-92ac-5d1ecdfe2e7f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/3edef6d4-c794-4d55-92ac-5d1ecdfe2e7f", "rel": "self"}, {"href": "http://localhost/runbooks/3edef6d4-c794-4d55-92ac-5d1ecdfe2e7f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.167053s] ... 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-31180a2d-59fb-4851-b781-5766414dba69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_558_runbooks_project_admin [0.099221s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d709ac39-f407-4de8-8201-b748666eed8a 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": "4a30f495-155a-44a2-b234-f1074f9a276f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/4a30f495-155a-44a2-b234-f1074f9a276f", "rel": "self"}, {"href": "http://localhost/runbooks/4a30f495-155a-44a2-b234-f1074f9a276f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_559_runbooks_runbook_id_get_project_admin [0.080668s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/bb560ef9-0b23-4bf2-a3e8-52634dc33e54 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5a3f9b6c-0175-44a9-bb49-9f662f2687f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bb560ef9-0b23-4bf2-a3e8-52634dc33e54", "created_at": "2025-05-22T18:23:45.457717+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/bb560ef9-0b23-4bf2-a3e8-52634dc33e54", "rel": "self"}, {"href": "http://localhost/runbooks/bb560ef9-0b23-4bf2-a3e8-52634dc33e54", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.145799s] ... 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-48dc6a96-faae-4f7a-9d24-7a08c4825987 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_560_project_admin_patch_runbook [0.136021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/d9be3759-fdf4-4d8b-a2ea-cb87d1c852b3 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6833de0-07eb-482b-adb0-17d2cb79cb2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d9be3759-fdf4-4d8b-a2ea-cb87d1c852b3", "created_at": "2025-05-22T18:23:45.543461+00:00", "updated_at": "2025-05-22T18:23:45.634873+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d9be3759-fdf4-4d8b-a2ea-cb87d1c852b3", "rel": "self"}, {"href": "http://localhost/runbooks/d9be3759-fdf4-4d8b-a2ea-cb87d1c852b3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.195119s] ... 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-5c76823b-ea31-437d-b5b4-d6965908dd5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_561_runbooks_project_manager [0.088393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73ac6cac-4bcb-4c1f-a872-a07d709d8753 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": "5597851f-4f17-42e5-b185-efb29938ee55", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/5597851f-4f17-42e5-b185-efb29938ee55", "rel": "self"}, {"href": "http://localhost/runbooks/5597851f-4f17-42e5-b185-efb29938ee55", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_562_runbooks_runbook_id_get_project_manager [0.111252s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/943058eb-388f-41a2-98b4-bd2b85a19351 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d375785-fcee-4b31-836d-99ef41e5384d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "943058eb-388f-41a2-98b4-bd2b85a19351", "created_at": "2025-05-22T18:23:45.773461+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/943058eb-388f-41a2-98b4-bd2b85a19351", "rel": "self"}, {"href": "http://localhost/runbooks/943058eb-388f-41a2-98b4-bd2b85a19351", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_admin [0.167194s] ... 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-02607174-c642-4b98-9b62-71e7afcf202d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_563_project_manager_patch_runbook [0.166857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/6e52e910-0509-460c-b5ca-9ad6dc4e8e4b WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4351cc1c-b8a4-4848-8c90-61e427687412 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6e52e910-0509-460c-b5ca-9ad6dc4e8e4b", "created_at": "2025-05-22T18:23:45.906516+00:00", "updated_at": "2025-05-22T18:23:46.005282+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6e52e910-0509-460c-b5ca-9ad6dc4e8e4b", "rel": "self"}, {"href": "http://localhost/runbooks/6e52e910-0509-460c-b5ca-9ad6dc4e8e4b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries [1.099762s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_564_runbooks_project_member [0.095002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-018ab7c5-ec00-404b-be76-f9d2f49f2cda 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": "5135bbe1-0570-47bd-bba6-2f66b9e90a1b", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/5135bbe1-0570-47bd-bba6-2f66b9e90a1b", "rel": "self"}, {"href": "http://localhost/runbooks/5135bbe1-0570-47bd-bba6-2f66b9e90a1b", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_member [0.252511s] ... 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-c5dbf74b-3ce3-4d0f-a13e-aa4ef0dbaf36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_565_runbooks_runbook_id_get_project_member [0.079163s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/ec89a9b9-b30e-485c-a7c8-5d7a16a66928 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8cf59cf9-a09c-43fc-ad77-87a1fa16d572 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ec89a9b9-b30e-485c-a7c8-5d7a16a66928", "created_at": "2025-05-22T18:23:46.140312+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/ec89a9b9-b30e-485c-a7c8-5d7a16a66928", "rel": "self"}, {"href": "http://localhost/runbooks/ec89a9b9-b30e-485c-a7c8-5d7a16a66928", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_get_observer [0.214079s] ... 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-3dd869e9-4a41-4038-a0cf-86c7655ecdaa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_566_runbooks_list_project_reader [0.166670s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-036f7f26-dd5d-4be3-990b-0e8b28bf232e 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": "34c7377f-113e-4d94-a91a-4dda9a019f0b", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/34c7377f-113e-4d94-a91a-4dda9a019f0b", "rel": "self"}, {"href": "http://localhost/runbooks/34c7377f-113e-4d94-a91a-4dda9a019f0b", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_567_runbooks_runbook_id_get_project_reader [0.080315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/a8307379-deea-4659-b13e-1b64295b2eb4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11d9ad3e-1c7a-4b94-b333-8cca5660c09e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a8307379-deea-4659-b13e-1b64295b2eb4", "created_at": "2025-05-22T18:23:46.400069+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/a8307379-deea-4659-b13e-1b64295b2eb4", "rel": "self"}, {"href": "http://localhost/runbooks/a8307379-deea-4659-b13e-1b64295b2eb4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_admin [0.218672s] ... 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-b578dbba-fc35-443c-9c2f-4dfec218f77a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_568_runbooks_list_third_party_admin [0.149234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f227a623-e5bb-4cf3-813b-af139670b1f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": []} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.101360s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_member [0.156508s] ... 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-78b9fdff-5738-4b4e-8e02-60b1c06f3593 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_569_project_reader_cannot_post_runbook [0.212195s] ... 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-6b67a5c9-d770-4f48-a66e-a84fb815bd23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_put_observer [0.097322s] ... 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-13f9da44-0fea-4bb6-81e2-48de3df87f9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_admin [0.091048s] ... 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-3f008026-5068-4ba6-891d-272cbe036ea2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_570_project_reader_cannot_patch_runbook [0.228352s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/31645249-af6b-4ecf-b4d6-5c1897cc8265 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9d5a9219-78a4-4f1b-a1b1-d4c003f89ad8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_member [0.137256s] ... 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-6b78ad51-5349-49a7-af54-c855f11cf766 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_delete_observer [0.111005s] ... 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-b93e42ee-7e3a-4b08-9bbe-b60de3c1cc5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries_without_log_mock [1.174352s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_571_project_reader_cannot_set_runbook_owner [0.190002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/bb5f3fb5-44e9-46da-a3bf-4c40eb606487 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d52800ae-c001-496d-81c7-5f7c88efd1ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.108969s] ... 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-6b71af70-b0b0-4e12-8b90-123347bd7c34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.082630s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_member [0.123763s] ... 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-de1733c5-3eec-484f-9ee9-60475974499f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.116925s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.104281s] ... 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-3a0dbea3-5cb3-4072-bb2a-85e5c381ea5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_572_project_reader_cannot_set_runbook_public [0.280532s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a722026f-4f5d-44a2-b942-9a2148090812 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4fb057f0-6e15-4ac6-a44c-1482c8dfc934 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.146989s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.147726s] ... 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-0592dd15-49f3-40d1-aac2-95b30324a39f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.145856s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.159303s] ... 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-3326e95d-9f8e-49d4-b999-159272e1022d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_573_project_reader_cannot_delete_runbook [0.287517s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/5f25e101-0d90-438f-8e95-0e01b5e49f86 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f5545b65-bd97-4a34-a880-cf326a35b436 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.122381s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.099344s] ... 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-5d32acd7-c2c8-4518-9bce-3ca3161890eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.167564s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_admin [0.218508s] ... 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-b71d123f-9104-4daf-8035-be462bc62017 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.167440s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_574_project_member_cannot_post_runbook [0.351932s] ... 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-3151979b-e546-4c8b-93d5-538845d50fb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_member [0.165444s] ... 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-72097630-a2a7-4847-beb8-b9e088f5924a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_get_observer [0.072461s] ... 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-739739d3-2bf2-4cae-b8d9-2a86d9d46ebf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_admin [0.118945s] ... 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-fe47b897-0c2e-47e7-8d42-4ed15db01506 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_575_project_member_cannot_patch_runbook [0.333408s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/345ecf6a-208d-4cea-904a-ab593b538167 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0c24c28c-42a7-44a6-866a-d09a54f7ed71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_member [0.165775s] ... 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-91d84167-5608-483a-8348-2e920792bc9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.646824s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_post_observer [0.181111s] ... 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-b16bded1-66b1-4cf3-9fff-9ca79527d75f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error [0.097557s] ... ok {3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.048743s] ... ok {3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.060786s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.161532s] ... 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-77a31765-8344-4e6a-aec0-f9f83383de63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp [0.060695s] ... ok {3} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.076908s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.189096s] ... 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-a69a709f-6224-4164-8ccc-bb99bde7a149 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_576_project_member_cannot_set_runbook_owner [0.718400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/87010847-9f7f-4461-8857-92617f929fd2 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-37468c21-bba8-48f9-98ec-a2627ee59aab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.147307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.102594s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.200602s] ... 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-2da067bc-3403-4c18-a0a1-c65ba86827d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_577_project_member_cannot_set_runbook_public [0.207648s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e75681a9-53d4-4d83-b89a-27460c6dd242 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3453a082-93fb-4920-bc6b-acb43decdc9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.091264s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.203360s] ... 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-5421a683-dc73-4dab-ab69-c968e009fe1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.154965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_578_project_member_cannot_delete_runbook [0.256551s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/b7d1f845-0769-413e-92c0-421b843dc722 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e432ea8b-a886-4fc2-9eac-eaa7195252fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.089865s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.079254s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_member [0.227622s] ... 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-1d5d67af-87ea-4ffd-852e-135911072433 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.208195s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.072554s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_579_project_manager_cannot_set_runbook_owner [0.215840s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/1e2c8fec-57e4-41a0-ba0d-26641f50b89e WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7486dc98-8e3f-4958-ba50-ad493051a3fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.105107s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.075108s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.138341s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_580_project_manager_cannot_set_runbook_public [0.290880s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/202753d5-3ea5-49ab-b75f-d44bebda79f4 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3d4fbd19-8b7c-4dfc-8fe4-f6ed1290dbc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.095882s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.129706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.217249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/bc671140-e3a8-41da-bbeb-1d21b57761d3 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-10fd6907-cfd4-47c8-913b-ca8f19d4b63e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.169961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.742852s] ... 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-bbd02ed8-4c58-4569-9579-07e592329ae6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_582_project_admin_cannot_set_runbook_public [0.218637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/29013a10-cfd9-4166-8459-9caf965198b4 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ede10c75-eae3-454d-9801-cf2115e3d1ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo [0.136149s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override [0.170524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.223944s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/1e5b85e4-3e7f-442c-8cc8-9a23e2055463 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5e142964-0ee6-4b20-94d9-938adfcc3f82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.063973s] ... ok {1} 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. {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.075054s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.077692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.191731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/8c0501fd-f8cd-4b47-86d0-03399f454fc1 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-208ca58a-ebed-45a2-a996-f87f57b82a78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.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.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json [0.083269s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.057670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.177820s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/81261707-29a4-482e-a237-38e865e31671 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ae03d32-f2f1-4002-9dba-a0cac961d164 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.072714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_admin [0.214309s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a5d5221d-b8a9-4b93-b605-baa07fbf493e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.TestRBACProjectScoped.test_project_scoped_586_third_party_admin_cannot_patch_runbook_public [0.112298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/250116b9-f7d7-40cc-9e88-b669a14d56f0 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7cf97c7c-93d1-4139-a34b-3e4c7a2a19ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.042996s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.159110s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.045854s] ... ok {0} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.041734s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.093588s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_114_portgroups_get_member [0.251154s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5902bbc6-6f9d-425c-883b-f3cac2883c4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_hooks.TestPublicUrlHook.test_before_host_url [0.050717s] ... ok {0} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.028054s] ... ok {0} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_datetime_format [0.023419s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.082906s] ... ok {0} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_uuid_format [0.035744s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid [0.031438s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.080333s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name [0.033832s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_get_observer [0.180140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-33aba9b1-76dd-497e-ab14-7129885abcaa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch [0.036857s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.070973s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.064420s] ... ok {0} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed [0.084556s] ... ok {0} ironic.tests.unit.common.test_args.ValidateTypesTest.test_types [0.032761s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum [0.022908s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_file_not_found [0.026378s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.102871s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_hashlib_not_supports_algo [0.036400s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_admin [0.243810s] ... 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-9694910e-8a1e-4360-8700-585b6f21bc70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mismatch [0.039005s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case [0.026645s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case_delimited [0.024065s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.117782s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_md5 [0.024980s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.022797s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.021466s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.084264s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.025667s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.027655s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.022126s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_process_event [0.022226s] ... ok {3} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.079405s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_117_portgroups_post_member [0.243625s] ... 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-fb814b07-b266-4edd-9725-01d22927a38d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable [0.041017s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd [0.118684s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.094069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_post_observer [0.163687s] ... 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-e4d6b12d-6ca9-4f4c-a7e5-a899a02fc730 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.071801s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk [0.111278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.040191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.040608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_admin [0.138618s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-72fd1db3-98f2-401e-a98e-0a0bb8ed0556 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy [0.103475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.138946s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent [0.108137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_member [0.181608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c0a88877-08d6-4e7d-bd27-802ae49f9c2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.068342s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor [0.096737s] ... ok {0} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.071559s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_detail_get_observer [0.092656s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f4d7bba4-1755-4ac5-b824-ac3c3fe8114a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces [0.049718s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific [0.054502s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces [0.062782s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.088516s] ... 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-f1032adc-eee1-4813-8698-9421e5a258df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_bad_format [0.073108s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode [0.059198s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.078665s] ... 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-2d108139-d63c-49a2-a28e-3b4ec936d535 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode [0.056478s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_not_specific [0.073041s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode [0.045003s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference [0.083452s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties [0.041640s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.140831s] ... 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-827c6843-bf13-4936-964c-76c9e37e56a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference_just_digest [0.052888s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac [0.067728s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image [0.048248s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_aarch64 [0.029082s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task [0.073108s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.OciImageServiceTestCase.test_identify_specific_image_bad_manifest [0.022028s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_local [0.033651s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_specific_digest [0.040684s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.210564s] ... 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-b9632660-1da9-4831-95a8-b815a2934555 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_show [0.029209s] ... ok {0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_validate_href [0.020833s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed [0.152627s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.027590s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg [0.036342s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.029790s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing [0.104461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.156989s] ... 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-cf5b87f5-5c96-4aea-8bbe-59e0b0049494 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed [0.065237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files [0.028286s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.097481s] ... 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-8abf2bc8-a5e4-45a7-b1b5-1850be53847d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg [0.063109s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 [0.084864s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError [0.028015s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg [0.062873s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.130216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1d4425cd-be8e-4136-8aa6-0b2601ad8304 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.040493s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.039466s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.096113s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f0a323fc-d0eb-42aa-8fc9-fefe1d4ac8e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.088210s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b402b73d-638d-4222-ac38-de7878e63eea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing [0.310119s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export [0.060490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_admin [0.101393s] ... 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-48d284cc-03d3-4b68-b565-db46847dc9d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.245970s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.041600s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed [0.086434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_member [0.091357s] ... 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-426f62b4-1fd4-4507-875e-17d5bb7b04fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.024906s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.026311s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.166459s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso [0.029468s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac [0.101838s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_get_observer [0.103821s] ... 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-baf943fe-5877-4ab8-af30-bc335ae4f2e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image [0.042358s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails [0.037124s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status [0.079007s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails [0.035700s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.077833s] ... 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-3e27aae8-73b2-4e09-bbeb-aa02cb5b0196 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url [0.037675s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.027530s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.031186s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked [0.048390s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.030767s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound [0.040963s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.105726s] ... 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-6ecf5a1b-fa7a-45a1-835a-fa40a5b2d383 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.026541s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.029184s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean [0.064921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files [0.048718s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.099642s] ... 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-e528e0ac-94f6-476e-b160-91b3018ecf16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.040540s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy [0.070748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.024571s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.024744s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean [0.077829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.029569s] ... ok {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.028338s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_137_ports_get_admin [0.169658s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c6671ff0-76ea-4cba-81f0-52c179225d6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.022765s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy [0.089898s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.048283s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold [0.037248s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_member [0.081297s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9a0a15c3-e475-4600-bd7c-d90f28fc93f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty [0.032550s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression [0.041986s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression_disabled [0.033467s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing [0.045653s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom [0.024523s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_get_observer [0.099312s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a0489d82-a3a3-4e8b-a00b-b720d44608b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing [0.039498s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default [0.031777s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller [0.027028s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported [0.038669s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.025669s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing [0.032677s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.034884s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_140_ports_post_admin [0.123797s] ... 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-9319c459-b4d1-47ad-9417-cba7fc25c6fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.common.test_images.IronicImagesTestCase.test_fetch_image_service_auth_data_checksum [0.044539s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue [0.079888s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.036944s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_member [0.081603s] ... 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-f7477878-4600-4fc4-8fec-3a271c33db73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_combined_algo [0.047106s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step [0.083462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_no_checksum_algo [0.033320s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_post_observer [0.119257s] ... 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-9032ed7b-43d3-427d-959d-49b601b9f62c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_with_checksum [0.061641s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step [0.092650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed [0.034312s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_with_checksum_mismatch [0.056500s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing [0.033869s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_admin [0.080021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7c8e6cda-9c0a-4473-9a8d-ee64ca235f65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.041212s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success [0.053892s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.034448s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found [0.029292s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt [0.030844s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_member [0.096870s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7b74324c-e6fb-4b7e-9f89-6fbff2cb1575 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema [0.041561s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt_backward_compatibility [0.027069s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing [0.041717s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw [0.034307s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_detail_get_observer [0.080658s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-97010447-9d37-4533-b00e-f1ea962b664e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_gpt_format [0.026785s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success [0.069128s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_iso [0.031265s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.023874s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_admin [0.091739s] ... 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-1ee6f6ae-7a8e-413c-983f-65482b8e538c X-Openstack-Ironic-Api-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.common.test_images.IronicImagesTestCase.test_image_to_raw_fails_safety_check [0.021891s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_permitted_format [0.026811s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success [0.086477s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.031345s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled [0.026916s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state [0.057202s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_member [0.105136s] ... 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-0aa5a266-2f31-410d-bb98-884c4f9304c9 X-Openstack-Ironic-Api-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.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled_fails_to_convert [0.032057s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length [0.022321s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type [0.033296s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac [0.098988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error [0.021708s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_get_observer [0.110974s] ... 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-d99a830d-d98b-4ea9-b815-514c1150fa3d X-Openstack-Ironic-Api-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.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect [0.038504s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none [0.032561s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step [0.075238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple [0.052821s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step [0.058349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit [0.040450s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none [0.042912s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none_by_arch [0.039828s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy [0.031453s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_admin [0.261733s] ... 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-c4aec730-2308-4068-ae27-5113da3ec073 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config [0.078018s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config_by_arch [0.029664s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_member [0.099874s] ... 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-efb26939-affa-4c2b-ac1b-4e5f940c256a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated [0.058318s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso [0.066762s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_patch_observer [0.122506s] ... 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-d163ed7b-12c3-4f8c-8d34-475537e19e34 X-Openstack-Ironic-Api-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.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.120726s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.349154s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.044643s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated [0.137665s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type [0.046982s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.053584s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.054520s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue [0.034091s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config [0.026288s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.063933s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso [0.040468s] ... ok {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image_oci [0.052475s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.053737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.051870s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.111606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.108339s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.049562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_admin [0.552687s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6a65e60e-70a7-47b7-9f8d-5928d3d7a878 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance [0.060488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_path_dot_slash_notation [0.103119s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.051372s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_with_dict_loop [0.076213s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_member [0.152293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-72bc14fb-a6da-4fe2-a952-6d4e0e3a4c49 X-Openstack-Ironic-Api-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.common.test_inspection_rule.TestActions.test_action_with_list_loop [0.084360s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_add_trait_action [0.051564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_ports_port_id_delete_observer [0.163083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-615e34b6-ba1e-4ebb-bbfc-708d94f6e2e8 X-Openstack-Ironic-Api-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.common.test_inspection_rule.TestActions.test_del_attribute_action [0.111281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.311926s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.050464s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_del_port_attribute_action [0.118560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_admin [0.194431s] ... 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-74e2aa9f-1237-452d-b614-c319507229fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.081104s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_extend_attribute_action [0.086715s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.161615s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_plugin_data_action [0.053937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.120425s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_extend_port_attribute_action [0.054299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_member [0.195706s] ... 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-dafb8145-3dab-4a19-aa35-21daf668f8ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_fail_action [0.062400s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.139604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.056814s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_log_action [0.105543s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.052297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test__get_certificate_file_list [0.026919s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_remove_trait_action [0.067107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty [0.037108s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_get_observer [0.247942s] ... 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-8d9ec9ac-d2db-47a0-bbdb-2ddfe0d18d0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path [0.039115s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_attribute_action [0.088406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none [0.061747s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_capability_action [0.074688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type [0.033526s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.025897s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_plugin_data_action [0.047781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.201449s] ... 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-5eb4ca21-3f14-417e-a81d-c23f8ac5d00c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.065952s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_set_port_attribute_action [0.091974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.062107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.073910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_member [0.155656s] ... 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-72a27688-f5ad-4019-bec7-56c0ed90478d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None [0.095889s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_add_certificates_false [0.054816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.099420s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestOperators.test_is_true_false_operators_edge_cases [0.050087s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_add_certificates_invalid [0.059858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.166004s] ... 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-b038c2e4-eb63-4c87-8a45-d71af8b7f4e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_oneofoperator_edge_cases [0.071911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error [0.074070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_add_certificates_true [0.059877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestOperators.test_operator_exceptions [0.113424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_add_certificates_true_default [0.076595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_admin [0.186640s] ... 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-72af87af-1f1d-436b-b6c8-193b429a1ff5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.035633s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.030101s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_with_loop [0.131900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestOperators.test_rule_operators [0.073273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.120436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_member [0.223335s] ... 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-17fc4f51-d679-4077-a506-a475a9eb97d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.075439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_failure [0.101962s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.068633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_ok [0.065037s] ... ok {0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_interfaces [0.076139s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.089253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_clear_certificates [0.045699s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_get_observer [0.228687s] ... 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-d20996ed-72b7-453b-ad8c-d549fada407e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_params [0.094533s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default [0.067940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error [0.055483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_race [0.086208s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.046184s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.068224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.203785s] ... 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-26d1f08c-00fa-47b1-ab06-b333ece2efa0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.083702s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.084036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.047217s] ... ok {0} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.045714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.048214s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.068626s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.053682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.227184s] ... 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-2b625732-26cf-4de0-b6d5-f23fcc9e6c84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url [0.043039s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.064737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_download_http_url [0.055918s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.070102s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.056801s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.059596s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.058887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_get_current_boot_mode [0.035794s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.237202s] ... 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-bdc35d46-b205-4c74-bacd-788490eb7636 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail [0.031699s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.114850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.030859s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean [0.034688s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.048395s] ... ok {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.116095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_admin [0.173175s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7d0f8f31-19d6-4789-95d3-5dd9613f9bfa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.062468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.123558s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.051776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.066226s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_168_volume_get_member [0.167170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-18c5fbf4-463b-4777-a1ef-333f9b6e8ab9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.076706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.172542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.063481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_get_observer [0.136028s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b1b0eac0-b0bd-4e2c-a315-fc342470d67a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.131690s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_admin [0.162310s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e22bf626-dac0-4e3f-a47f-f8df4dbb18a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state [0.311453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.070542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_member [0.239427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a1823bbc-390c-45bd-b84e-9791da900ac0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.048509s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.142111s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.095960s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_get_observer [0.195977s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9548b36b-db9e-48cc-81a4-9b4f76df8502 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.inspector.hooks.test_physical_network.PhysicalNetworkTestCase.test_physical_network [0.165899s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.094344s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.111551s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_admin [0.172577s] ... 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-a9aca6a9-2db5-4630-8272-fa295a8878cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.137931s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.065875s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config [0.848537s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_member [0.230390s] ... 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-f0827940-9822-402b-b6b2-7cce4f86f5be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.099394s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.064448s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.098877s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_175_volume_connectors_post_observer [0.275557s] ... 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-c7e7455d-d0f8-466e-ad00-75fd3bc8a701 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.112032s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.145152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.238160s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/b0f13ddc-f987-4022-860d-d1aa07c65bc6 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9377958a-00ef-4194-b33c-21500a102a1a X-Openstack-Ironic-Api-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 b0f13ddc-f987-4022-860d-d1aa07c65bc6 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.123270s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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 [0.967031s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.119886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.181947s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/fc82eb74-534a-43a1-8c23-abb688ff985a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b264fe17-8e6b-452f-9e70-8013cf3f6d79 X-Openstack-Ironic-Api-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 fc82eb74-534a-43a1-8c23-abb688ff985a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false [0.122079s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.215671s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/f1a25762-a58f-4034-b7fb-57655e41261b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-98bda27e-f245-4ad0-8185-7c491eedcd7b X-Openstack-Ironic-Api-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 f1a25762-a58f-4034-b7fb-57655e41261b could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true [0.130283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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 [0.467124s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error [0.110584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestNeutronClient.test_get_neutron_client_noauth [1.208741s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.200882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/86083335-56f4-4f65-b8f4-792d1574079d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2d4b0bf1-5d0c-4dda-b612-288fedd07db2 X-Openstack-Ironic-Api-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 86083335-56f4-4f65-b8f4-792d1574079d could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported [0.154458s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http [0.125798s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.214429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/fc4343ec-55c6-4708-a9a3-a8046154c613 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c70bf123-8df0-490a-abb7-aad349d64dce X-Openstack-Ironic-Api-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 fc4343ec-55c6-4708-a9a3-a8046154c613 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.097579s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.192152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/f253e5b7-a3e9-48bc-817a-d1cf4c95d1a4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-766c0616-e1ee-4251-a805-2da203f36ec4 X-Openstack-Ironic-Api-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 f253e5b7-a3e9-48bc-817a-d1cf4c95d1a4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.140749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.125797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.203058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1524f71e-ab9a-4b93-a4b1-1b558f73196b GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-182130a1-e74a-42c1-8dc3-ebfd983e3d88 X-Openstack-Ironic-Api-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 1524f71e-ab9a-4b93-a4b1-1b558f73196b could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.126330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.227818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/85562bab-7e1d-4a06-99db-5bd2aa232970 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ef79f0a1-1ce0-403d-8b93-ed9ae7dd0136 X-Openstack-Ironic-Api-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 85562bab-7e1d-4a06-99db-5bd2aa232970 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params [0.141230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_update_boot_mode [0.065694s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.051554s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.060204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.232152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/f9c9ab9a-a012-48cf-adad-2e66250755e2 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-98356077-f7ce-4d28-9758-f49cc409d7d4 X-Openstack-Ironic-Api-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 f9c9ab9a-a012-48cf-adad-2e66250755e2 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.085148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.051797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_standalone [1.288253s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.075099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_admin [0.187975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f08170e3-04b9-444d-bcc4-0dd155c1543b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.inspector.test_interface.CheckStatusTestCase.test_exception_ignored [0.099317s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.103052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.071320s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_finished [0.096243s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_member [0.295844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9e672f02-fef3-4e10-a1f9-f7316dfc1e34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.inspector.test_interface.CheckStatusTestCase.test_not_inspecting [0.107144s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.231426s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.137777s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.153136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestNeutronClient.test_get_neutron_client_with_context [1.781868s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties [0.118677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_clean_up_failed [0.176604s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_get_observer [0.377655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-76797112-f3d5-47c8-a42b-852d56f54af6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values [0.089034s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param [0.065461s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error [0.159963s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param [0.073260s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error_dont_store_inventory [0.116833s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_admin [0.229483s] ... 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-a2ada700-3287-45d1-85a7-685e5fae6b59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.095724s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha256 [0.039455s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha512 [0.036402s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.030959s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok [0.190018s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_member [0.196633s] ... 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-382f7cc2-33c3-4e76-9db0-f4ae849c548a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.068181s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.035500s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory [0.129291s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.046312s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities [0.089104s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory_nostore [0.110154s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.069896s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint [0.097594s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.040969s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.028863s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_mdns [0.079867s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.041400s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty [0.029229s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.039153s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok [0.033501s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback [0.104757s] ... ok {0} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [1.146568s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.035224s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.042727s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_override [0.095398s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url [0.084464s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_cleaning [0.090543s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_properties [0.075970s] ... ok {0} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url_adds_oci [0.082531s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_validate_ok [0.073464s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_create_raid_deploying [0.085801s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_client_init_make_session [0.101193s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.076506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.092277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.047544s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_get_blob_url [0.099390s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.076661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url [0.072826s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.085982s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_digest [0.066541s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_190_volume_targets_post_observer [1.073465s] ... 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-c22b750a-9a4c-49ff-91e6-c2700b36e02d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.078846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_tag [0.060404s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.025361s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.028246s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.042478s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.129300s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.063268s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.056288s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.228784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/6408e151-92fd-4261-9356-b67f12d62fa0 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4eba002f-1814-4d87-b69a-7d44fc2c3625 X-Openstack-Ironic-Api-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 6408e151-92fd-4261-9356-b67f12d62fa0 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.457504s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.049504s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.091165s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.074853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.059870s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.029143s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.127155s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image [0.037990s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_member [0.172180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/0fce6050-7060-4fd9-a62c-0c5971966de2 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bbfe4c23-a49e-4ba3-bd38-7c5eb7b84152 X-Openstack-Ironic-Api-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 0fce6050-7060-4fd9-a62c-0c5971966de2 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_flags [0.039440s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.065122s] ... ok {0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_just_fails [0.032244s] ... ok {0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries [0.022926s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.047582s] ... ok {0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_alternate_error [0.031105s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.030998s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.138669s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_and_fails [0.024168s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated [0.055854s] ... ok {0} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.053204s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.176348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/8f4a39e6-e2a4-4bae-a079-f8a3399da1c3 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-885e44fb-bea2-4510-ac8f-7b9457c03252 X-Openstack-Ironic-Api-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 8f4a39e6-e2a4-4bae-a079-f8a3399da1c3 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.051810s] ... ok {0} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.048954s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.145446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_command_not_found [0.030035s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params [0.064737s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.036739s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf [0.039334s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.029950s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info [0.036527s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.028866s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.176213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/1700af5a-4abc-4b72-929f-ce048b2f6d10 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c6e32bfd-749a-4c92-9bbf-3afb7f1bb174 X-Openstack-Ironic-Api-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 1700af5a-4abc-4b72-929f-ce048b2f6d10 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default [0.026966s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.035943s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.135075s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false [0.034872s] ... ok {0} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true [0.037413s] ... ok {0} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_indexerror [0.031754s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.105239s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 [0.023419s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.037317s] ... ok {0} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6 [0.031299s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning [0.147724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.183504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/200c8b54-eeb8-4e37-b9f2-fe549dfc8dde WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-58e3b6d2-1df9-4ec8-ae4c-98db8115c761 X-Openstack-Ironic-Api-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 200c8b54-eeb8-4e37-b9f2-fe549dfc8dde could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated [0.039627s] ... ok {0} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal [0.032123s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.029731s] ... ok {0} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed [0.043437s] ... ok {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_all [0.025995s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.059280s] ... ok {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_name [0.028516s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.028652s] ... ok {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_none [0.028165s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.042257s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [0.192079s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute [0.046621s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.043771s] ... ok {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints [0.035186s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.229895s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/dd085e66-881c-44d7-821c-7090fff39b78 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8547161e-8eda-48cd-a69b-4bba49e3b3ad X-Openstack-Ironic-Api-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 dd085e66-881c-44d7-821c-7090fff39b78 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 [0.033690s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.051567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 [0.029577s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.028899s] ... ok {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found [0.026430s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.042025s] ... ok {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators [0.058569s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.062029s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint [0.034628s] ... ok {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational [0.023072s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.251805s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool [0.025370s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.075895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.279399s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/da8f6327-5830-4797-8d43-bb8a4bfec202 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9c01df56-28d0-428f-b774-b771e3b78695 X-Openstack-Ironic-Api-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 da8f6327-5830-4797-8d43-bb8a4bfec202 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.071961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.169368s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.075829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.177655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/8ff0324f-680a-4265-bc32-ea3633ae4128 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d7abca9e-06d3-4831-b8c3-1823dc387d89 X-Openstack-Ironic-Api-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 8ff0324f-680a-4265-bc32-ea3633ae4128 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.096067s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.130282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink [0.318567s] ... ok {0} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink_ENOENT [0.027926s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.086237s] ... ok {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.022899s] ... ok {0} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.033697s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.053540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.172336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/000c1bbc-f14f-4ff1-b9be-e6bf90ec225e GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7103a3cc-c597-4199-a43e-66c3a1c9006f X-Openstack-Ironic-Api-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 000c1bbc-f14f-4ff1-b9be-e6bf90ec225e could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.139865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.050014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.086886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.048688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.054250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [0.153491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.115875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_admin [0.201388s] ... 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-24385e67-4028-4d95-8d33-42c03854bdb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.100382s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.112798s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.126900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.089344s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_member [0.197047s] ... 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-b1484e58-70ba-42f1-ad97-e5f663dac58d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.113282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.244128s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track [0.119355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_get_observer [0.215414s] ... 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-943148fc-7153-4090-ba9e-840194b1216d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track [0.108728s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_deploying [0.181069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.171848s] ... 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-158384a2-6c48-4275-aba3-b93227b82d16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_boot_iso_if_needed_deprecated [0.599539s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.111319s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.076445s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.172249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.036125s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.043093s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.160469s] ... 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-6d92da1b-a3ee-4aea-9c78-516ba29aaae5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.187113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.058537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.180585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.074726s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.077966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.232150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.247546s] ... 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-47a561d6-cca2-4f90-a037-ca9744accde2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_elcm_error [0.063134s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_invalid_json [0.031147s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_cleaning [0.210491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.064266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_200 [0.048547s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_500 [0.059358s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.038643s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.141975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.218435s] ... 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-264eddf3-d4f1-4dc4-b859-de609e23062e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.054171s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.196831s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.050781s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.039200s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state [0.080985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.045436s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.193599s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated [0.089388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_member [0.232960s] ... 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-7c7378d4-10b6-4737-bc55-674f5ec6a909 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_common.IRMCCommonMethodsTestCase.test_set_irmc_version_fail [0.107445s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.079539s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.154959s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_success [0.146408s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.145847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.204264s] ... 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-f119bbb0-1b88-4fe7-99b8-aa44e93a5d0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.141802s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.064200s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.091068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.060396s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.115967s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.085429s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.105964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_admin [0.214849s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ff8a42de-d295-4f56-8506-d149b8df34b1 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.083304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.148450s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.093536s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_match [0.061386s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.102848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_210_drivers_get_member [0.181101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-edb8f3bc-4e9c-4d7e-9ddd-8dc8b0dc4a62 X-Openstack-Ironic-Api-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.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_version_set [0.060848s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.151674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success [0.061716s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.130496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success_out_range [0.077251s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled [0.067959s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.155358s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.058476s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_211_drivers_get_observer [0.224722s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-756d71a1-d015-46ab-a3d5-9fdf4acfbee2 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.095290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.092478s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.092199s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_deploying [0.156397s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.093915s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_admin [0.169211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b8874884-bfb2-4944-a43f-c51f0a545736 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.071446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.099605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.083884s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.063459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.101121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.094662s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.098526s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_member [0.192139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2035554b-4fac-49eb-9439-291af295c697 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.060924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.067918s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.059938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.104807s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system [0.060214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.093051s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception [0.057870s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.148736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_driver_name_get_observer [0.224857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6fee3904-398c-4c3c-a027-71e15525fa24 X-Openstack-Ironic-Api-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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [0.091558s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso [0.070294s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.066684s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.086499s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.066735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual [0.078356s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription [0.069167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_admin [0.162377s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2e600f5f-e2e9-4a29-ae95-1b401df20fab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.090180s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_operation_exeption [0.081543s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [0.153086s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.066091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_pci_devices.PciDevicesTestCase.test_pci_devices [0.078731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.085530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.129306s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk [0.059467s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_member [0.261400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4c7660bb-c1b4-4230-8139-667212135b16 X-Openstack-Ironic-Api-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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [0.132992s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_added [0.245095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.142931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IRMCPowerTestCase.test_get_power_state_default [0.109396s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_properties_get_observer [0.188194s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6fb10ae2-06c6-40c0-adcb-f3a94fb875df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [0.134538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IRMCPowerTestCase.test_get_power_state_ipmi [0.105812s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.105286s] ... 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-80e4e6ce-9031-4c8c-8ebb-4012a3b4c944 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.101542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.093813s] ... 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-ef9e2e3c-b564-4ac2-85bf-ef4d2e6f0ba4 X-Openstack-Ironic-Api-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.irmc.test_power.IRMCPowerTestCase.test_get_power_state_redfish [0.163386s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.084420s] ... 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-8d768711-4d07-48fa-b50a-ab64eb14beab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_all [0.380249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IRMCPowerTestCase.test_get_properties [0.083855s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.230749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.115072s] ... 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-12798784-cdf9-4591-985e-a2626781921e X-Openstack-Ironic-Api-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.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on [0.103576s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_ports.UpdatePortsTestCase.test_keep_present [0.255111s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.143954s] ... 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-dfedef65-4e29-4582-8dbf-72a4ce29f787 X-Openstack-Ironic-Api-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.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.129561s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.258357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.099917s] ... 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-93450ee4-5233-43ee-962c-cd06c097c3c7 X-Openstack-Ironic-Api-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.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot [0.127764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.086834s] ... 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-12a892e1-2d02-4d26-ae54-33566882dc5a X-Openstack-Ironic-Api-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.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_pxe_enabled [0.234912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.083065s] ... 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-d91ee672-7f2c-4282-b905-d7b03240e118 X-Openstack-Ironic-Api-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.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.126920s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.076774s] ... 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-b7c1d2dd-4630-417b-86b3-1974181a3894 X-Openstack-Ironic-Api-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.inspector.test_agent.AbortInspectionTestCase.test_cleanup_failed [0.183587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IRMCPowerTestCase.test_set_power_state [0.124190s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.083516s] ... 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-46688953-af57-45a5-9f0c-947fda1b7235 X-Openstack-Ironic-Api-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.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout [0.107095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.inspector.test_agent.AbortInspectionTestCase.test_success [0.142940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.123009s] ... 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-ffb50621-2a9a-4676-bd0b-b51fc20665bc X-Openstack-Ironic-Api-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.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_error [0.046779s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail [0.514314s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IRMCPowerTestCase.test_validate_default [0.081506s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_ok [0.040580s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_ipmi [0.096569s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean [0.109745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IRMCPowerTestCase.test_validate_fail_redfish [0.122213s] ... ok {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.117286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IRMCPowerTestCase.test_validate_ipmi [0.103002s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.395948s] ... 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-28f17277-49fd-4d6f-b02d-c7ca36724652 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy [0.156149s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.083549s] ... 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-381520be-74b6-4677-963f-9b70f906f68d X-Openstack-Ironic-Api-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.irmc.test_power.IRMCPowerTestCase.test_validate_redfish [0.106585s] ... ok {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.421399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.047797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.087514s] ... 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-a313fd13-506a-4720-9d09-11bd97e745d5 X-Openstack-Ironic-Api-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.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.054253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.154997s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.104683s] ... 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-936b9148-4856-4355-a6d7-dc90e8a90eb6 X-Openstack-Ironic-Api-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.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.071602s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.289999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.074914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IRMCPXEBootTestCase.test_clean_up_instance [0.061758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance [0.072051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.187012s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.062391s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.076724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_admin [0.090489s] ... 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-8db6cbcc-f0c4-42c8-bf34-3763e347e0bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.074172s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_member [0.087453s] ... 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-bb92f9de-9f10-4d27-bed2-08bc8fffc11f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.060380s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs [0.263636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.068346s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.598503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_get_observer [0.115024s] ... 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-69be3dc3-7ee8-4db7-95a7-f3c7e6e79854 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.156233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.087921s] ... 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-4e031fdd-e82c-4328-8445-8fc26a4c3f1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.110123s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.158860s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.067782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.100161s] ... 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-2c45b9eb-625d-4477-ab3f-c09c26d74c09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.079383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_active [0.163781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.038929s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network [0.146277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_ipmi [0.100216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.206545s] ... 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-24698a2b-fd4b-4c07-ba6d-6d6117c08787 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_wait [0.185262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_redfish [0.075616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node [0.177065s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.070165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_admin [0.140935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e1c8a3f3-fd1f-4dd7-8e13-b39d3d7df691 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg [0.117167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ng_redfish [0.064712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_member [0.180436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e85f5d47-763d-4da9-8e04-030d4a48b405 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.139943s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok_ipmi [0.163121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.419555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_243_conductors_get_observer [0.144695s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d928239d-e8d1-406b-a2fc-263fa70f5903 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_ipmi [0.149011s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.234949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_admin [0.136579s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c6d0661e-10a7-4896-8731-71cb589f40dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_redfish [0.190939s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_member [0.137008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2eda1f2b-a2f2-454e-ab44-fd7467a4958b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.231020s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_conductors_hostname_get_observer [0.094719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4681c7aa-2fba-4f4c-aa0c-bf776c29cb23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk [0.410864s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_ipmi [0.192156s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_247_allocations_post_admin [0.092992s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-743015ff-65ca-468c-afa0-7a1307d56326 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_redfish [0.071425s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.230602s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.192199s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_ipmi [0.095234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} 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. {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_redfish [0.089828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_post_observer [0.090038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ff1cd54e-ec2c-402d-b469-8c7bef20e16e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.143063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.202518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_admin [0.103200s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a0a1a5e4-4423-4428-896b-9369f49e80d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.099845s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.146931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.163206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.098993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.116733s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_member [0.167480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0e01cec0-1949-418e-b900-f705a565e4b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.044756s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.105936s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks [0.160927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng_ipmi [0.091214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_get_observer [0.186716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2fe7e441-9a85-4d64-b71d-c43db3236de8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_node_clean_steps_fail_poweroff [0.150822s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.155502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive [0.045366s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.183380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/73147493-29da-4696-a5cd-4f0c99e4e18e WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0f30419e-9c55-4047-acef-b6ace1c4cb01 X-Openstack-Ironic-Api-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 73147493-29da-4696-a5cd-4f0c99e4e18e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.111891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift [0.109778s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios_ipmi [0.285673s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build [0.097473s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_member [0.106286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/c78ccccb-a426-453c-af90-e58875a94896 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-77c5cb13-7c31-4fe5-b930-87264ef855d2 X-Openstack-Ironic-Api-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 c78ccccb-a426-453c-af90-e58875a94896 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.134997s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.075832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/6f4826ab-7480-4c5a-b4b1-40655c07da3b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fb33b94c-db23-4ef8-9df3-b9a42c71abb0 X-Openstack-Ironic-Api-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 6f4826ab-7480-4c5a-b4b1-40655c07da3b could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.110205s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.120831s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom_ipmi [0.288107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.117441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/30cb9609-b917-4ae3-897f-f54792e76c74 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9564dbf6-0dc4-4bd3-bbd2-cbfc91efb9ae X-Openstack-Ironic-Api-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 30cb9609-b917-4ae3-897f-f54792e76c74 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.093484s] ... ok {0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_ok [0.114148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.185022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.142344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/8338c22d-5e4b-4fd9-9679-d728eb5a88a0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-02d0d915-b0b3-4ae1-8e2d-2b0a5e48934b X-Openstack-Ironic-Api-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 8338c22d-5e4b-4fd9-9679-d728eb5a88a0 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_raises_error [0.119202s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk_ipmi [0.252824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspect_wait [0.080172s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.179575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/db2b305c-70c5-468d-943f-90ec5dccadc3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d147586c-cf56-4a55-b7a9-446abb634140 X-Openstack-Ironic-Api-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 db2b305c-70c5-468d-943f-90ec5dccadc3 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.216170s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspecting [0.061290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.103339s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/e23aff5b-b08e-47e0-b7d5-a429918177cd GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dbf70413-4372-4254-b40c-2343858197d4 X-Openstack-Ironic-Api-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 e23aff5b-b08e-47e0-b7d5-a429918177cd could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_other_state [0.088373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address [0.187685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.108955s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/9dc1600d-ee89-482b-9121-1e74d1a5c7fd GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b5a643e1-7eb9-4049-98a5-e0ff1870a932 X-Openstack-Ironic-Api-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 9dc1600d-ee89-482b-9121-1e74d1a5c7fd could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_unexpected_error [0.109752s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe_ipmi [0.388448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.094593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/0bae3432-d071-422a-be10-9df523a7c04e GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e8b8869f-1da7-4197-9f05-417996a7a496 X-Openstack-Ironic-Api-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 0bae3432-d071-422a-be10-9df523a7c04e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data [0.170552s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.140877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_admin [0.180128s] ... 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-b5b14d4b-615e-4fc2-91bf-bb88a684e06a X-Openstack-Ironic-Api-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.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.164476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout [0.162152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.190848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_member [0.254569s] ... 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-e22b4277-23b3-4da9-bbf3-b05951f9a01f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.220854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe_ipmi [0.479411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.184529s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.223044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_get_observer [0.202372s] ... 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-d0b38f47-5d26-457b-9c82-c6915159b218 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_fail_redfish [0.176814s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.149831s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.185404s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_admin [0.196581s] ... 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-2ede7386-c739-430b-9f02-9ebb6de8a1fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_success_redfish [0.185230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.176521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_fail [0.152027s] ... ok {0} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_servicewait_timeouts [0.229877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_member [0.203841s] ... 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-b4f86722-c468-457c-a072-b53c7deca640 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_success [0.108472s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_fail [0.051777s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.216742s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_success [0.056043s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_nodes_allocation_delete_observer [0.209167s] ... 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-05be001c-ce6c-4c7b-94d3-5ae57b71e7ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_invalid [0.065150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_missing [0.056492s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.196084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_http_success [0.094874s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_admin [0.225184s] ... 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-801c7d61-bc77-4624-b48b-5b8d3f082d17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_https_success [0.067507s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.168305s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_member [0.249312s] ... 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-92331d95-e599-481b-8316-ca0426ffbc64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 [0.191983s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_success [0.293684s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ContinueNodeDeployTestCase.test_continue_node_deploy [0.785784s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_avoid_repeatedly_resume_cleaning [0.067502s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.043692s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.066577s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 [0.211248s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_post_observer [0.271681s] ... 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-f8be6009-773a-4526-94d7-47ed604e0f62 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.067162s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.302563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_complete_cleaning [0.073410s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.128024s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate [0.061881s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.077306s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.053895s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection [0.106603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.053869s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.035093s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc [0.069150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_node [0.038091s] ... ok {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked [0.266852s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.057059s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid_config [0.055857s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.055238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.074072s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_with_disable_power_off [0.056444s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.044322s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.048379s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.254345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.147623s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.053394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_admin [0.664117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c02bac17-56d4-49d1-a366-2331b77f259e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.063443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.118478s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_member [0.170218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-44cc0d29-bd1d-445e-ab3a-c515c4067953 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.225082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_flat.TestFlatInterface.test__unbind_flat_ports [0.125151s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.067146s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_get_observer [0.119911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-66df7db4-c07b-4091-a6de-9f94c2c9189e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port [0.190929s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_flat.TestFlatInterface.test_add_cleaning_network [0.102237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.116892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/d4f21c6d-22a1-4bb0-92fa-69a3564e7456 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-27f03c24-7dd5-4870-9375-4b6339016f44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.105859s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/f279ec4c-0550-492b-890b-e640ddcac17d WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6bb9a492-4d68-4361-b16e-6628808b5140 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.089412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/4fa40675-95ea-4e9d-9096-6c8035da642d WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-aecabf16-5cb2-44a0-8af0-c5010b8bc4a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.239518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.253559s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.130343s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/89caa2aa-1c6d-4991-a536-da1f011f73f9 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ae8c9b2f-cd44-4185-9726-104b64da951b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save [0.693816s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present [0.146510s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_flat.TestFlatInterface.test_add_inspection_network [0.171947s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.095819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f680335d-0ccc-49a1-a154-f50eb68ab761 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8fd71e4f-21ad-408c-96b4-61e7f9504a3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.134000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry [0.173073s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.202792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/2e57e265-6a1e-4f40-b6f7-edf2db9c6840 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-027ebdfc-0cb1-48ed-8b29-4b30c892b815 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.115877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry [0.164702s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node [0.321628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.102148s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/52ae83d2-8285-477c-9bb3-8e5d49040f53 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7c5b2faf-c96f-42a9-9f98-d9e2f347fbcf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked [0.103518s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.089198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/1e37513d-08d2-449a-b535-89eda4ab0b08 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ca7b90a3-e51d-4b46-826f-227efd24b2c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.122497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry [0.171598s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.125419s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device [0.079352s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network [0.112745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.136409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device_inserted [0.077153s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.193679s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/675e4031-a633-463d-a20e-9eae75ceba1b GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c0d80549-f6b0-47f4-9d3d-6a09bbe55d71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data [0.160416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_already_inserted [0.102050s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network [0.100746s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew [0.142045s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_283_chassis_post_admin [0.297871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8cfe815f-66af-42eb-9572-4ef42081706f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.339139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_flat.TestFlatInterface.test_remove_cleaning_network [0.144789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd [0.126958s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd_retry [0.067862s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_bad_device [0.037975s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.190789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_while_ejecting [0.070112s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_member [0.293771s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-96414c98-e5f7-403d-aee7-269367de4a2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_everything [0.062870s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network [0.151881s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy [0.376904s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_from_all_resources [0.078097s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_post_observer [0.184039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b681198c-8ffd-4cb3-9c2f-f7ec315ff2f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_not_inserted [0.090644s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network [0.130846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_specific [0.101934s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.109597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_unknown [0.048114s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.274646s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_admin [0.191063s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8a701e71-b375-4f7d-80e0-1c5909a3a780 X-Openstack-Ironic-Api-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.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.061190s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup [0.032391s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged [0.042302s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node [0.150773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails [0.048982s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_member [0.203278s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-537328b8-884c-427d-a549-e1be3658a1e1 X-Openstack-Ironic-Api-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.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file [0.089523s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection [0.165216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_download_to_temp_http [0.054261s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.322558s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid [0.024125s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift [0.054760s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url [0.046600s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection_exc [0.146587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_stage_http [0.032354s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_get_observer [0.235483s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-df7764e3-3b15-4584-b14b-4b5a19ef3c15 X-Openstack-Ironic-Api-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.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile [0.032564s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails [0.028527s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external [0.033080s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.155811s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_stage_swift [0.037494s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args [0.024482s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.310524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing [0.031401s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_admin [0.193576s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1b9e642f-7125-46fb-8550-d1c5424f3449 X-Openstack-Ironic-Api-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.network.test_flat.TestFlatInterface.test_vif_detach [0.203284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_member [0.191607s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c176579f-e423-477e-813d-c436e3cd4ef4 X-Openstack-Ironic-Api-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.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.244740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_flat.TestFlatInterface.test_vif_list [0.143756s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string [0.384216s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.174068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_detail_get_observer [0.198879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-cbeeb4b9-343a-4257-8a04-cfa2ae77c110 X-Openstack-Ironic-Api-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.network.test_flat.TestFlatInterface.test_vif_port_changed [0.147210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list [0.056086s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known [0.073770s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort [0.125484s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.106463s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key [0.059562s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.205086s] ... 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-28c09ffe-905d-49ab-a83c-7dead4d19e89 X-Openstack-Ironic-Api-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.RedfishHTTPBootTestCase.test_clean_up_instance_only_cdrom [0.093710s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing [0.063675s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.148165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string [0.052550s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_ramdisk [0.083064s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int [0.063878s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_ramdisk [0.104034s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_member [0.193482s] ... 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-de9d70f8-9135-48cf-9cc8-477a02772920 X-Openstack-Ironic-Api-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.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum [0.053437s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch [0.051657s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info [0.083301s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.286544s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_utils.FirmwareUtilsTestCase.test_verify_checksum_sha256 [0.097700s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info_exc [0.094220s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha512 [0.077897s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.259436s] ... 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-b3774ea2-cf7f-4546-8935-570a6c66e424 X-Openstack-Ironic-Api-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.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.091068s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors [0.186003s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.112803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.082490s] ... ok {2} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.098890s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.105846s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.132474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.233190s] ... 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-b5210bd9-15cd-4985-98d7-8be0c7dcefc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.085763s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final [0.110618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.150242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.077889s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.103284s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.238149s] ... 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-e3e91aa6-e134-4421-9b9d-b77a67784404 X-Openstack-Ironic-Api-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.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 [0.102774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.AgentRAIDTestCase.test__create_configuration_final_registered_clean [0.122780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.268909s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.187991s] ... 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-b1f30c2f-2cce-4082-ae28-41156ef3cdbc X-Openstack-Ironic-Api-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.AgentRAIDTestCase.test__create_configuration_final_registered_deploy [0.103192s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.167487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.177633s] ... 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-b805865a-c049-4094-9ccf-82950a23b8b9 X-Openstack-Ironic-Api-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.AgentRAIDTestCase.test__delete_configuration_final [0.152242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.579649s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.186733s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.AgentRAIDTestCase.test__delete_configuration_final_registered [0.145398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.177751s] ... 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-38e69dff-4cef-43fd-b813-d04512cd7b94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_deploy [0.140038s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration [0.141735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.157614s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_exc [0.104279s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.215909s] ... 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-4bc5ab03-2e36-4b53-a0f8-f197bec02554 X-Openstack-Ironic-Api-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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue [0.130660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration [0.141530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy [0.123401s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.116518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.078252s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_admin [0.185050s] ... 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-d818a598-00f7-4844-a4e9-3d0a512534cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.171575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue [0.093973s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.117539s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.074531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.098329s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_302_node_history_get_member [0.186953s] ... 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-0ef6c5b9-81a1-48ab-84e3-9b68b7d6e82b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.099167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.131671s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_iso [0.099922s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy [0.079856s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root [0.138272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_observer [0.238563s] ... 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-ef9f4dac-3e2b-421e-9588-7326e81cfe60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.091913s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration [0.150112s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue [0.080312s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.079768s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.418849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_admin [0.211961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6bb6a02f-6f2a-42cd-a3cd-97810005975f WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e0969275-c3b7-4469-b70e-38374c3430ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.AgentRAIDTestCase.test_get_clean_steps [0.116333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_ramdisk [0.095802s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.100101s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.AgentRAIDTestCase.test_get_clean_steps_config_priority [0.113237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_member [0.183711s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1ac041b7-b46a-4e2f-bf00-9fee9332c004 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b2601548-efd9-4e1d-9943-bb9c73d9e707 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_rescue [0.106080s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps [0.101601s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.160185s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot [0.122489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_306_node_history_get_entry_observer [0.176876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3ca3f3ec-a437-4259-81d5-0d49ad2d76f9 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-edf25d46-7bfd-413f-bb89-f2d5a74c2176 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_boot_option [0.196901s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values ... SKIPPED: These are fake reference values for YAML templating {0} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.207659s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.PrepareInstanceToBootTest.test_prepare_instance_to_boot_configure_fails [0.155133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.086891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.054057s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_local_whole_disk_image [0.235887s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin [0.235981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7ccd5f52-3b0b-4b04-aa49-a5d1b2414351 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot_localboot_prep_partition [0.171153s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.118283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member [0.148263s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-01c4e6c1-0688-4d00-89b5-dff908c455bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.drivers.modules.test_agent.SwitchToTenantNetworkTest.test_switch_to_tenant_network [0.172760s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test_continue_node_service [0.210670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_normal_boot [0.308387s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer [0.152986s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cb88a09b-127c-4a59-b7b6-a8d498d861d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_abort [0.169594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_ramdisk_boot [0.246190s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.SwitchToTenantNetworkTest.test_switch_to_tenant_network_fails [0.350658s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test_continue_node_service_abort_last_service_step [0.234623s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin [0.387065s] ... 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-14741b59-6597-44b8-b7fe-87a905f62ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TearDownAgentTest.test_tear_down_agent [0.193705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_iso [0.249201s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member [0.091827s] ... 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-a5f6ed33-f9ec-4cfd-98cb-2f98d69df00d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_locked [0.178555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer [0.152079s] ... 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-162cd6d9-c1fb-461e-9385-43c728fc8061 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TearDownAgentTest.test_tear_down_agent_disable_power_off [0.212789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test_continue_node_service_worker_pool_full [0.141177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_iso_boot [0.252823s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin [0.151004s] ... 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-2fb1d01a-9da6-4ff2-b971-4bca32515fa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_wrong_state [0.145487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_get_power_state_fails [0.179481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin [0.097670s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-58cc6c2a-e097-48fa-9fea-b7fc641a49b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.236396s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_provision_action_unhold_service [0.114657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin [0.112321s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8beeedb6-fa27-44f0-9436-2d68bee5d402 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.TearDownAgentTest.test_tear_down_agent_no_power_on_support [0.195879s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test_do_node_service [0.138816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin [0.127848s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-961643be-23e3-4802-a401-26888c8bd1a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_fast_track [0.188705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeServiceTestCase.test_do_node_service_maintenance [0.133585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member [0.122572s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9add3257-6024-4a41-9142-ed6ab28469ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off [0.213893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.227334s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer [0.111406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bf4bd297-7c9c-4c32-a452-6efaef2661bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin [0.077369s] ... 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-f9f915cd-4566-4bc2-a42f-707b5eea988e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off_failed [0.215107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member [0.098293s] ... 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-198ddf81-8317-4c2d-8463-d26fa4ffbd14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_with_params [0.239324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer [0.109588s] ... 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-bf08b317-4bb0-4891-a28e-46ef7bd1bfbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_boot_iso [0.116482s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin [0.115427s] ... 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-f0265b2d-8c6f-4574-a6ea-705b79e64397 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TearDownAgentTest.test_tear_down_agent_power_off_fails [0.289749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_correct_vendor [0.132972s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member [0.137874s] ... 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-72828186-1087-4314-b02e-a71f305ad571 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TearDownAgentTest.test_tear_down_agent_soft_poweroff_doesnt_complete [0.176462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_errors_with_lack_of_support [0.130015s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer [0.188875s] ... 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-36ce99d2-6067-4057-bf84-a3f44b4c9fdd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_inspection [0.129004s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_soft_poweroff_fails [0.178381s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin [0.092362s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c7c40098-faf6-4b52-abf8-1d18fe5cdff9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_kernel_ramdisk [0.140371s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member [0.128154s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7d9184dd-56ef-4663-bea0-5401a64cce6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TearDownAgentTest.test_tear_down_agent_soft_poweroff_race [0.222325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_local [0.169827s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer [0.098769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0cc68a24-3b6c-4578-a3c7-d22bd641f8bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestBootcAgentDeploy.test_execute_bootc_install [0.168052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin [0.147986s] ... 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-dad86e04-e1da-4d70-815d-5471a3990f30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [1.453814s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-pack ages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: Depr ecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_set_boot_to_disk [0.175464s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member [0.156181s] ... 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-da62388d-0b54-4344-ab3c-353160aa4730 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer [0.112122s] ... 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-151184d8-d76f-4641-9a5f-322401537261 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.231975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin [0.145898s] ... 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-915c1307-dfc3-4d39-bb89-1648ac324b65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestBootcAgentDeploy.test_set_boot_to_disk_lenovo [0.262417s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.179164s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member [0.129031s] ... 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-e0a7196a-7f9e-43a4-889c-66eb410ec23f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer [0.086673s] ... 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-596918f4-783b-4186-93ec-07768c4e09cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestBootcAgentDeploy.test_validate [0.217210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.207081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin [0.097478s] ... 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-17915681-582b-45e5-90bb-1ff3617de80f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_missing [0.963981s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_image_source_not_set [0.167130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member [0.099533s] ... 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-a56a6930-100b-4b72-93cb-3769872dfdfb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device [0.123396s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path [0.247230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer [0.160562s] ... 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-c23c38b3-4c71-4054-b58d-95ec2107f891 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted [0.114101s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.150933s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_remove_vif_failed [0.260679s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin [0.283645s] ... 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-18fe93ec-2383-450e-98ad-018b16e8e0e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.235109s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd [0.202433s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_with_non_oci [0.822899s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member [0.376050s] ... 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-ce099ff4-ff63-44c5-b086-1dce74792382 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd_retry [0.090226s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue [0.053446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result [0.060566s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_bad_device [0.110947s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc [0.076715s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer [0.210367s] ... 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-2eff83d7-f4b3-4431-a419-a4976ed844e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_base.AgentRescueTests.test__finalize_rescue_missing_command_result [0.054460s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.139749s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.063923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.061879s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_while_ejecting [0.120834s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin [0.210378s] ... 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-a4f94dfb-23d8-4c47-aa88-6c529dfcb326 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.113245s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [1.001171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac [0.195836s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.151109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run [0.081211s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.197704s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac [0.156481s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run [0.063023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member [0.358586s] ... 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-742ed5fc-9377-464b-a18a-d26555548c41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.121049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing [0.095533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.089879s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing_fails [0.089981s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_cdrom_and_floppy [0.217711s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.072988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer [0.242409s] ... 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-691a5b9f-6b0b-43b0-93cd-2f20d0844c1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.097789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails [0.055350s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_only_cdrom [0.134896s] ... ok {0} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.147300s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.104788s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.045816s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk [0.126967s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.034148s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin [0.238570s] ... 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-2425b1f6-535f-4ff6-8222-90de489ee511 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.051655s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.156246s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.113589s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.082825s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.329147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_everything [0.129187s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.065084s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member [0.306792s] ... 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-44bb6b5a-fdc4-4fdd-a5ee-4fede4024e7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.060991s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.131303s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted [0.112396s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.029640s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped [0.043580s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.057738s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific [0.112906s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer [0.243161s] ... 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-83f2b504-c32b-4fb2-82f8-1c6570de3945 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.068980s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.217408s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown [0.106659s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.059830s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.065178s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.052734s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.055013s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling [0.129259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.040723s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.066478s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin [0.254442s] ... 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-3bb1c371-1fd6-48a2-b086-573cb8de4b70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.090993s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.128702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.068059s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member [0.188264s] ... 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-b1907bb6-f3b0-48ff-b023-afb8aeb656d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.078180s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.294522s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.076946s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.064897s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo [0.250557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.046993s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer [0.213182s] ... 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-527592f4-4703-4af2-bcad-546fdac5fecb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.092605s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.050854s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.188854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info [0.314960s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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 [0.079814s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.048867s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.038216s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management [0.163636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.040124s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso [0.045742s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated [0.045430s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.082168s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp [0.204047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.042887s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.044660s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin [0.631390s] ... 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-9ce239cf-0b17-44a6-b6ca-b08e39124dda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_base.HeartbeatMixinTest.test_heartbeat_records_when_appropriate [0.480667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.NmiTestCase.test_inject_nmi [0.104516s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_by_arch [0.053481s] ... ok {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked [0.091077s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue [0.149107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NmiTestCase.test_inject_nmi_not_implemented [0.100022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member [0.251711s] ... 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-53e5a2fd-fae8-4358-8701-3154f1bc98fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_base.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.161433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NmiTestCase.test_inject_nmi_validate_invalid_param [0.124654s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer [0.199882s] ... 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-cd355eef-4d12-4ad8-a3a6-46261f4bdb5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param [0.116774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean [0.162930s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin [0.093342s] ... 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-fc9156e4-6e69-45b6-b60c-be92ff16b793 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk [0.589575s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.139622s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member [0.102790s] ... 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-f39fdb98-d98a-4884-85b7-4946ffc194e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable [0.080811s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer [0.120376s] ... 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-8b565aa8-0ba3-4225-a84d-d1a25cf9a742 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated [0.126739s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.346919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.276352s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_rescue [0.134925s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_service [0.157438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure [0.126959s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin [0.310375s] ... 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-f28c71a9-2221-4f83-9dc6-e5da10b2ca41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.088720s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.175910s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation [0.151889s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member [0.100652s] ... 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-7c34810a-a800-42c5-937a-ca5913aaf4cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestAgentClientAttempts.test__command_fail_agent_token_required [0.050473s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer [0.088065s] ... 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-2d14620e-c073-4178-8140-84556bec381a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestAgentClientAttempts.test__command_fail_all_attempts [0.067118s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.209432s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.061477s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin [0.091470s] ... 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-b5b2d0cd-1964-4c7b-9312-5d31055ed97e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.248085s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-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.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.060764s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member [0.108644s] ... 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-b8564e73-d3e6-4062-a2d2-2fe5b2fc5f95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.GetBootModeTestCase.test_get_boot_mode_bios [0.067772s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.133982s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default [0.055208s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer [0.081940s] ... 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-4bad6bd1-f8b2-4e1a-9599-4410e1cfe2d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.GetBootModeTestCase.test_get_boot_mode_default [0.068482s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set [0.063517s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.338341s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.043131s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin [0.177258s] ... 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-891ea133-4806-4c63-acca-0075c1f563c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.243676s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.071895s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.036161s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.160617s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot [0.055287s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member [0.167923s] ... 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-33ac691b-25bd-4f31-9103-e3557d40b9ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.GetBootModeTestCase.test_get_boot_mode_uefi [0.053151s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.220825s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer [0.097387s] ... 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-c1782b12-2acb-4684-b240-f4a19cc66645 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.166958s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure [0.086845s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin [0.098981s] ... 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-66b5effc-a6d1-4e91-9402-6250afff0b5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_exception [0.123174s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.156922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.145839s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member [0.093789s] ... 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-6d916658-7e3f-4c38-85ea-07035a157f52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer [0.075996s] ... 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-4596d4fa-a9f9-4cb5-bf31-8c70a6823f18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.134597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.157492s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.178734s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin [0.142262s] ... 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-e03945d9-b489-41fe-86c6-272a4e2e6a10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_unsupported [0.136556s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_fast_track [0.133203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.180377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member [0.104331s] ... 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-4ae69cf4-be7b-415e-98e1-7b7874a52f93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.117897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.135777s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_064_nodes_states_console_get_observer [0.114093s] ... 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-19fa3386-edd8-4881-9aeb-38bf0ef84915 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible [0.156383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception [0.107556s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_admin [0.105501s] ... 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-4586fb9d-19c4-4829-93a5-c32c8cf1e703 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_none_requested [0.097365s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.136190s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config [0.160856s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_member [0.105925s] ... 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-be109807-f6ed-41ec-935d-40170f3fdd1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.141791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.178293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_067_nodes_states_console_put_observer [0.108755s] ... 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-c7607f20-9533-488a-a2e3-c52a0b609285 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug [0.155893s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.081126s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.066678s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_admin [0.118966s] ... 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-3784b520-1998-489a-ac72-8d53f8ff12d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.129741s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.182540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_member [0.100280s] ... 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-9654e043-3e00-4766-9a31-f6e1e0f844eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_methods_get_observer [0.111421s] ... 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-3465193b-af02-4411-aa52-623ea2ba29f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.183791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_admin [0.090397s] ... 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-ea365b28-48d1-4f34-acd7-229004d82972 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_member [0.108864s] ... 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-8b59a3a9-9f75-4694-b22d-fe8ceb7d397c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.475846s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb [0.212973s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.087743s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso [0.100455s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_get_observer [0.179987s] ... 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-92f3ccab-c810-4491-a1ad-c9128f695258 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.088681s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.617029s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor [0.103201s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_admin [0.099099s] ... 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-0836449b-6530-426c-ae2a-5a6fd5272eda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.086657s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.051170s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.143705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_validate_inspection [0.133154s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_member [0.139890s] ... 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-95e00a7e-8884-423e-97db-687d37cabf52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.064834s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing [0.117505s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.101402s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_post_observer [0.124482s] ... 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-b6ee9eec-9a05-4bc6-b020-e2fc2051b6f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.070591s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.239168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk [0.154714s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_admin [0.124139s] ... 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-cf9302c2-565e-4741-a35e-0328229ae773 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local [0.091087s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_member [0.083661s] ... 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-776b908e-cd66-44de-86bc-1f0c8760f333 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.150297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_put_observer [0.091048s] ... 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-4eb2768b-9705-4e4a-8442-699c9ea1b0ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.120705s] ... ok {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.106689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_admin [0.080279s] ... 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-307b31af-0a06-4519-9fd9-7ec7767b7f92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.104777s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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_clean [0.219782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.136880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.089732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_deploy [0.163224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VendorPassthruTestCase.test_vendor_passthru_sync [0.111140s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_member [0.454339s] ... 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-31d96718-8794-4ac2-87b3-4de2af8669e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create [0.177688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.121620s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.865435s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_vendor_passthru_delete_observer [0.128056s] ... 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-372948c3-e6f9-4eee-ac02-9491510fc5f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.061985s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.062277s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_admin [0.102947s] ... 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-74f1c932-3dbf-42a1-bf51-46d26270292a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.226581s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default [0.105950s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_member [0.110041s] ... 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-0a719dea-b5ba-4cca-80ce-52773e2c40e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach [0.097769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname [0.097926s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_get_observer [0.096365s] ... 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-303b2b52-180e-4c2b-b2ea-ca6c598b1543 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked [0.093970s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 [0.122960s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_admin [0.126758s] ... 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-17355c72-6f68-4989-ae18-3dc0e46b36c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error [0.119093s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 [0.097247s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_member [0.106268s] ... 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-248af23b-ec2d-48df-9cd0-51b11289e019 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete [0.644758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports [0.070829s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.103000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_088_nodes_traits_put_observer [0.096426s] ... 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-5ac5eb47-6054-4588-8652-942ff381b209 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry [0.055655s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller [0.128759s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success [0.065017s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.104117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_admin [0.087359s] ... 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-c59c3fd7-1195-4165-bcf6-3c5bfcd8baae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller_no_controllers [0.076659s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.077984s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_member [0.117543s] ... 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-a515ea8c-580d-4785-bdb8-8e56e49ea3d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_controllers [0.074844s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.140261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.090406s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_empty [0.073233s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.054988s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.024686s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_delete_observer [0.131948s] ... 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-1f85cfe5-d319-4be1-93c0-da7a5767ff42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.026908s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach [0.122199s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_storage_controllers [0.101329s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range [0.061015s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.040575s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked [0.117574s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.060788s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller [0.152187s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_admin [0.224584s] ... 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-a97ff0fb-b7cf-4c05-8996-21d3f8e474bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.062272s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.037416s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.159201s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.038734s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 [0.109172s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.032054s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_member [0.154723s] ... 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-8682cf83-99da-4f74-a117-45f0cbb688be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.063421s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 [0.107279s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.060425s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error [0.163672s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_put_observer [0.092255s] ... 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-fd4afe82-2d85-4707-aa6e-5ba45ad002af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.046741s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 [0.112052s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.038162s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.040444s] ... ok {0} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.127581s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_admin [0.131895s] ... 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-df849507-0bfe-4ed1-8bd9-32d9c7fc39e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 [0.095151s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.045358s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.042196s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_member [0.095204s] ... 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-4c342c42-6037-4e48-b7e0-df8a7aeef9cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.044369s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.033469s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.178635s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.041937s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_traits_trait_delete_observer [0.111835s] ... 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-29eb2f95-e980-4380-ba48-8cdf081c7207 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed [0.187098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.062385s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.091343s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.027513s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_admin [0.092561s] ... 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-2caa1b5e-dc24-4f8e-b6fd-f13045713255 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.028442s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.024768s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.041706s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.120060s] ... ok {2} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range [0.026941s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing [0.227423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_member [0.154980s] ... 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-3aeaac5d-2bd3-446b-945f-b87bcf05bcb7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.AgentMethodsTestCase.test_agent_add_clean_params [0.055137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.AgentMethodsTestCase.test_build_agent_options_conf [0.046150s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.135902s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.037054s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.037103s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.085804s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success [0.183206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_get_observer [0.186893s] ... 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-b1c9d930-3c37-421d-9d34-6e3bfbb6cc9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.056510s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.039586s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.087380s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.044610s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_admin [0.099436s] ... 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-4b2ebd56-eb81-4af2-b94b-293c3a9f646c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error [0.119164s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestNotificationUtils.test_emit_console_notification_error_status [0.065446s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.068211s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestNotificationUtils.test_emit_power_set_notification [0.066611s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 [0.077188s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_member [0.112799s] ... 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-96e6d696-2778-4640-9fa5-8bec69fac36c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.058578s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 [0.067026s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_drain_has_reserved [0.056689s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track [0.164716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_shutdown_timeout_reached [0.052078s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_103_nodes_vifs_post_observer [0.143789s] ... 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-4c504c0a-bffb-467c-970a-dd706d159d16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.104660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start [0.086475s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_admin [0.123076s] ... 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-1b88981e-af26-4049-8bdf-0dfe84150439 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.101837s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_failure [0.095733s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_member [0.106594s] ... 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-d7682edc-b5ab-4cd5-bec3-71e76329d5fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_no_rpc [0.084687s] ... ok {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_full_reset_interval [0.072873s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_vifs_node_vif_ident_delete_observer [0.112659s] ... 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-88155ec5-68f6-4d23-89a0-e1d30899034a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_remaining_interval [0.069176s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_admin [0.099618s] ... 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-86fc445d-7aa3-4489-b8c2-2e823c13c284 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_has_reserved [0.073375s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a [0.592515s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_service [0.328651s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_instant [0.063850s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_member [0.140452s] ... 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-1af62927-8d92-4249-b9f0-279b681f735f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.080043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_slow [0.065404s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b [0.131193s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.076533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_109_nodes_management_indicators_get_observer [0.085791s] ... 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-dbedba59-3ce9-4532-a4c6-7646154d6a13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off [0.073114s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.114988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.172364s] ... ok {0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.070714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_111_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {0} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.052317s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} 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_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off_and_fast_track [0.169650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.GetValidatedStepsFromTemplatesTestCase.test_skip_missing [0.058656s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template [0.048757s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps [0.072288s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.224517s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_admin [0.175986s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6140410d-b09f-4522-9b30-2ef026053732 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.239980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_member [0.081934s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-956084df-7656-47c1-b454-e317f8e047b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 [0.154071s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_get_observer [0.075301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-17a96dac-0476-4be8-b4b0-22fc8fa92578 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.115486s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_on_reset [0.136983s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_admin [0.142594s] ... 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-1e4ac089-f176-46e5-947d-dfd2f5f62ad6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 [0.116057s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service [0.165925s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.078025s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_member [0.208901s] ... 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-864c8cc3-02f5-4c72-89f4-c013fe87d71c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a [0.080785s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok [0.586965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.AgentMethodsTestCase.test_tear_down_inband_service_disable_power_off [0.193259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.079016s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 [0.046621s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing [0.126335s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.AgentMethodsTestCase.test_tear_down_inband_service_service_error [0.119693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.035362s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type [0.094928s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_post_observer [0.240919s] ... 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-fd057c4f-2315-4415-9ca7-397bf0910d12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps [0.112318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.063644s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.073648s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps [0.095603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_admin [0.186928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6e45a4ae-f559-4eb4-aab1-783dcf7755cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.055154s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token [0.044589s] ... ok {0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node [0.112731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ProvisionNotifyTestCase.test_notify_error_state [0.052825s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_polling_if_not_set [0.090461s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.048654s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_member [0.209498s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0d46a71f-9c56-4aef-ae10-341aeffc6fe2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.052286s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.080590s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.059709s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.101336s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.052415s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_detail_get_observer [0.171991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1436d214-5e59-4357-b355-53ad452e80cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.064605s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.049703s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.042630s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.041198s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate [0.695295s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.046848s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.061959s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.041314s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.068067s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.042358s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.026194s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset [0.152434s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.084780s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.036125s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.039966s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.050522s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.040685s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks [0.116047s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.050144s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.042445s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy [0.030536s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.032779s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type [0.130949s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda [0.031110s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present [0.139989s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.041276s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.038365s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_admin [0.636894s] ... 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-5a9270a5-d9ef-46d7-993d-8716e831e435 X-Openstack-Ironic-Api-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_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.037535s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config [0.138310s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty [0.120170s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.036572s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_member [0.081065s] ... 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-bd832b09-0b0b-40e0-83ad-c5d97cd22226 X-Openstack-Ironic-Api-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_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.045660s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi [0.114994s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed [0.105878s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.057796s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_get_observer [0.101579s] ... 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-9cf1a66e-1612-4860-b669-0f20faee14ac X-Openstack-Ironic-Api-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_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.042078s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.027678s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only [0.036144s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler [0.137954s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.033477s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok [0.156928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_admin [0.148291s] ... 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-be6c4ee1-4a8e-41ff-816a-f79500af8222 X-Openstack-Ironic-Api-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_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.035364s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda [0.026905s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.123977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.037446s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported [0.106138s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.029959s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.035644s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy [0.027478s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.110520s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.037709s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.165934s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test__expire_console_sessions [0.060749s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_member [0.305122s] ... 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-c9162740-1424-4c6d-949f-51b10aeb6478 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.123777s] ... ok {2} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_start_console [0.082731s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.050042s] ... ok {2} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_stop_console [0.090624s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.087145s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.235023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image [0.030546s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_disable_validation [0.034315s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.054169s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url [0.031205s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.069718s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_patch_observer [0.293264s] ... 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-bb1911e3-4fd7-4911-a697-e893b0ac1ba7 X-Openstack-Ironic-Api-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_image_cache.TestImageCacheDownload.test__download_image_linkfail [0.069382s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.151308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.064623s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard [0.034482s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_clear [0.029831s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.040487s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_new_value [0.043453s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.046452s] ... ok {2} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_replace_with_empty [0.056345s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.068913s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data [0.196872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.045973s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.050447s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_admin [0.274467s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aaf49844-5dd0-4992-b9e0-d6ca2fef58db X-Openstack-Ironic-Api-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_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite [0.048348s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.048356s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.045883s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.056561s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.051122s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.191872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.082690s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.105869s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_exception [0.050030s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_member [0.273726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fadafb68-6aa7-4c4c-be27-37205252e132 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.163338s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_cleanup_servicewait_timeout [0.113537s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout_handler_call [0.085008s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.158767s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.096243s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_130_portgroups_portgroup_ident_delete_observer [0.210164s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c1a4644e-a905-43ab-a353-ab0142a6f7bb X-Openstack-Ironic-Api-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_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_first_call_to_address [0.270126s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.031168s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.065612s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.033968s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.146119s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_try_different_cipher_suite [0.053507s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.099331s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.069021s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_admin [0.230124s] ... 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-ba0d7e2b-1e69-44dd-95f3-eb3482d130c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.155959s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_check_exit_code [0.035831s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.119912s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_dual_bridging [0.047445s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.106873s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.133528s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_empty_username [0.079850s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_member [0.170186s] ... 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-8021cfd0-5afd-4150-8359-6d7667a43179 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_ironic_retries [0.070810s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.105271s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_port [0.041525s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_single_bridging [0.031139s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.158343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.077649s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timeout [0.037984s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timing [0.033107s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_get_observer [0.209494s] ... 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-f172203e-9f50-4269-924e-4dab6ecd0f55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.081571s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_timing [0.052919s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.143906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.079982s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_username [0.063195s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_admin [0.177867s] ... 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-99721acd-02b4-42ed-b831-e2b19e1281d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler [0.080511s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_str_password [0.079304s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.135290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_with_numeric_password [0.050160s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_fail [0.057652s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.046757s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_teardown [0.061046s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.047460s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_member [0.206849s] ... 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-87df84e6-3cdd-4582-89a7-96d842469ff9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicefail [0.081754s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.190290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.064001s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.044146s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicewait [0.061090s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.036493s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.036792s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.138635s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_servicing_error_handler_tear_down_error [0.084079s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_nodes_portgroups_detail_get_observer [0.169372s] ... 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-c42c939f-d5c5-4244-af81-67b5bef4c6b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.044234s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.031458s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.096042s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.054922s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.029792s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.161844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.073291s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.040984s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_admin [0.173170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bd9fe987-70c6-4f02-a2bc-53a94505881a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.079377s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.053801s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_node_busy [0.037557s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.149877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.046367s] ... ok {0} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.096290s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_member [0.157774s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5094fcec-b6c2-4177-8c9d-9b00fcbdde06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_timeout [0.065859s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.142435s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.104114s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.078412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.117642s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_get_observer [0.230094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-16195743-c061-46c2-a998-9c898f7ddbde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.158010s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_spawn_servicing_error_handler_no_worker [0.109687s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.291976s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ErrorHandlersTestCase.test_spawn_servicing_error_handler_other_error [0.099366s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.123008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history [0.066268s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console [0.106014s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled [0.128463s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_admin [0.373228s] ... 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-ed295ae1-6ae4-4e1f-860d-f41d11a6c29b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.116521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.288039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop [0.169327s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.128857s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.188764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_member [0.245488s] ... 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-183ba1e0-37f4-4b3b-8a80-9d30d1931122 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.122780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.154098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolSocatDriverTestCase.test_console_validate [0.103836s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_post_observer [0.166426s] ... 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-376f2ad7-2e9a-465f-855a-83f9f03ed98a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_admin [0.083672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f5e008f8-1d93-434b-a363-fc3c451602c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.091276s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_member [0.082481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b9e82878-01c3-437e-8935-c90a8182983f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.093885s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_detail_get_observer [0.129449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2c2c6e00-ef50-4632-9111-44753e147746 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate [0.141949s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity [0.653425s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_admin [0.093888s] ... 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-da69d5b1-cc6f-4ec6-bfd1-408412baf887 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_member [0.086876s] ... 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-4c929e19-e38e-4b90-9a70-ae15e74e923d X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.152637s] ... ok {0} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user [0.133521s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_get_observer [0.096477s] ... 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-96e1ae5d-26d8-461c-96f5-22e57fe7ba0f X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.122385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.ServiceUtilsTestCase.test_wipe_service_internal_info [0.124323s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.056270s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_admin [0.126985s] ... 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-c7df65a1-698a-4ddb-a0f0-fb0a3727d67f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.757662s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolSocatDriverTestCase.test_start_console [0.104233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.049922s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.042821s] ... ok {0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.054696s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_member [0.143442s] ... 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-1da4cb1d-6c07-4170-9f36-b85c321f2b18 X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port [0.135631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.041744s] ... ok {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.183169s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.052480s] ... ok {0} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.045714s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port [0.093786s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_151_ports_port_id_patch_observer [0.135158s] ... 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-c182f38e-7b43-485f-8b40-f8589ab15785 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.164518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolSocatDriverTestCase.test_stop_console [0.090787s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_admin [0.112406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-63e6472d-d87e-4773-8eb5-b54e47f640a7 X-Openstack-Ironic-Api-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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db [0.130950s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_member [0.081679s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9651f71a-b251-4889-9985-f862ef3d3c70 X-Openstack-Ironic-Api-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_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.111252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.152874s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db_instance_not_found [0.148548s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_ports_port_id_delete_observer [0.104692s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-91f276a0-9404-452b-8831-0273058b1163 X-Openstack-Ironic-Api-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_ipxe.iPXEBootBaseUtils.test__node_set_boot_device_for_network_boot [0.105692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.112727s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_admin [0.082634s] ... 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-60fcb4de-7848-4fb4-84d4-eebb23e4bee8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.105911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.164595s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue [0.114319s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.AgentRescueTestCase.test_agent_rescue_clean_up [0.058252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.103126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.068095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_member [0.188071s] ... 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-c4b450a9-7cd1-437f-aa53-62343d2c64e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.180801s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.067540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.159531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.AgentRescueTestCase.test_agent_rescue_disable_power_off [0.097391s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios [0.061941s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_get_observer [0.182054s] ... 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-99c89f95-2fbc-4fbb-a6b5-a05f7a97d966 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.173775s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.046606s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.064445s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.043930s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_power_on [0.098873s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name [0.060092s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_admin [0.175100s] ... 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-a44cd301-b84f-4cf7-bf50-a0cc99603f3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate [0.051526s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.046914s] ... ok {2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor [0.031599s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.056121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.045475s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.075424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.044244s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_member [0.198273s] ... 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-aff2b4b9-b0e3-4d57-a18c-89a11839aad3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.354735s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.058478s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.064566s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_maintenance [0.132808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.AgentRescueTestCase.test_agent_unrescue [0.094214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_nodes_ports_detail_get_observer [0.209085s] ... 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-3452a4b5-12e1-4587-a619-8e261bd0d4e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_not_retry_with_token [0.092088s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_disable_power_off [0.078021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.328423s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.169041s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.143342s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on [0.108326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.102923s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.053285s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.093227s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot [0.060398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.096034s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.506421s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.065451s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.109457s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_boot_loader_install_fail [0.153509s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_admin [0.772881s] ... 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-3b39222f-0a8b-453d-8296-3168102d417c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.193287s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.124637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.222583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.098594s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_member [0.136757s] ... 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-834e6e33-3086-4168-875c-19e216033553 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.115093s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.085038s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.117488s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.117179s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_get_observer [0.127188s] ... 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-533c6380-f6f4-4ae9-be80-765c8d65aacc X-Openstack-Ironic-Api-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.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.047388s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.082476s] ... ok {2} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.068893s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.088939s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_admin [0.125879s] ... 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-cbf846a5-8f02-4a42-8ccc-805543d78c0f X-Openstack-Ironic-Api-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.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.055019s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.051953s] ... ok {2} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.040914s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_member [0.091134s] ... 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-a930d59e-8dcd-4b67-a8ac-98f09a2d214c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.071456s] ... ok {2} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.049901s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_lenovo [0.257896s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.044784s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_portgroups_ports_detail_get_observer [0.093182s] ... 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-f1c4ca16-ea5a-4247-9a13-64115b88415e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.078372s] ... ok {2} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.048877s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.085847s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid [0.149510s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config [0.044798s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_167_volume_get_admin [0.130655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9cbe7d03-8130-4e01-af34-de49b06f7ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_base.TestDeployInterface.test_warning_on_heartbeat [0.052037s] ... ok {0} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.066766s] ... ok {2} ironic.tests.unit.drivers.test_base.TestFirmwareInterface.test_update_with_wrapper [0.062501s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid_whole_disk [0.133105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_member [0.105169s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8422bd86-4cd0-491c-86ef-da06fd56d257 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.092669s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.068684s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_non_software_raid [0.091763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_get_observer [0.093282s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9e5e00ec-7e94-4117-ab09-0463085bf2b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_drac.IDRACHardwareTestCase.test_default_interfaces [0.121483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.099034s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_admin [0.098367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-17b4fc0d-6fc4-4411-9502-0733beb609e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid [0.118824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.114345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.069527s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [0.067087s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_bios [0.137823s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.055700s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_member [0.187822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a900f11f-ad95-4fb3-a5d5-508617efdef0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_drac.IDRACHardwareTestCase.test_override_with_raid [0.137209s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.069547s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_172_volume_connectors_get_observer [0.111349s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6a00c36d-27a0-4841-8f5a-f7beb0a24296 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_bios [0.142648s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.068354s] ... ok {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios [0.130317s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.072858s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_admin [0.153581s] ... 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-837b6191-b5a8-4965-8360-fe5b3e26a046 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect [0.133221s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_uefi [0.162763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.103118s] ... ok {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.074032s] ... ok {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power [0.140621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_member [0.165161s] ... 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-ff64ef29-cd85-4535-a914-239b455793df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid [0.155881s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.068841s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.060287s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_connectors_post_observer [0.099272s] ... 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-f2a02070-1fb5-4f17-a2dc-9359118434b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_drac.IDRACHardwareTestCase.test_override_with_redfish_raid [0.118678s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios [0.141276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.082778s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_admin [0.094356s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/b8d17086-0850-4fef-8bb1-af2ec0e63baf WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5cefe420-7251-4247-b0a4-46444d301cc9 X-Openstack-Ironic-Api-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 b8d17086-0850-4fef-8bb1-af2ec0e63baf could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.063948s] ... ok {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_vendor [0.151109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_member [0.103198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/fbff4df0-92ee-43fa-bb67-ffedf2227a3f WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-80888a91-f904-47db-a1fa-6575dbbc93ab X-Openstack-Ironic-Api-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 fbff4df0-92ee-43fa-bb67-ffedf2227a3f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.081410s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.075528s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_get_observer [0.106792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/f32b3638-0e86-4d02-9efe-680dbfd357be WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8e4379fe-233e-446d-97a5-5d251dee9262 X-Openstack-Ironic-Api-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 f32b3638-0e86-4d02-9efe-680dbfd357be could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot [0.119635s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_set_boot_device_fail [0.277669s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.083151s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_admin [0.087890s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/ee96caad-def4-468b-91b4-df17db72b09b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-86eaf89c-f9f1-471a-b4e1-e647b4f03d18 X-Openstack-Ironic-Api-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 ee96caad-def4-468b-91b4-df17db72b09b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.101156s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.063314s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_uefi [0.151708s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.080883s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_member [0.138320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/4eaa7f03-eab8-4964-b338-7984d6a859c0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9c08f668-cef3-4f22-b0a4-0c5bb65c34da X-Openstack-Ironic-Api-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 4eaa7f03-eab8-4964-b338-7984d6a859c0 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.106716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image [0.111557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.099458s] ... ok {2} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.126070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_patch_observer [0.151869s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/28feaa41-95e5-47ac-b2ab-9ace8238d4b5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a6f6c509-7ac5-4805-86f8-14f65673906a X-Openstack-Ironic-Api-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 28feaa41-95e5-47ac-b2ab-9ace8238d4b5 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.077958s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image_bios [0.148560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_override_with_noop_mgmt [0.088567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.070209s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_admin [0.094420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/6f79af44-5348-4647-ac71-95b569b35139 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2667afd7-0a49-49a6-b164-60665dfb7697 X-Openstack-Ironic-Api-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 6f79af44-5348-4647-ac71-95b569b35139 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_with_prep [0.076032s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_override_with_shellinabox [0.098092s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_member [0.092916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/be8d656e-bc68-49bf-8a3a-2284092f7ed4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9a19197a-f2ef-4a93-935d-dee92f1c2e5e X-Openstack-Ironic-Api-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 be8d656e-bc68-49bf-8a3a-2284092f7ed4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.054918s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up [0.122031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_volume_connector_id_delete_observer [0.080335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/cdfeda89-2e7b-4afb-bd0e-5a3dbbb13fc2 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d6ffd61-1cdd-47cd-9ce8-d4e655738a41 X-Openstack-Ironic-Api-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 cdfeda89-2e7b-4afb-bd0e-5a3dbbb13fc2 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.076471s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_admin [0.092626s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-07897c6c-f6f5-4ad7-a500-82a03815e473 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up_disable_power_off [0.124885s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.112504s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_member [0.090801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f21e0012-e8a6-492c-9073-07d4a59a65dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.090214s] ... ok {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.090068s] ... ok {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.026322s] ... ok {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.026534s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_get_observer [0.273964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-80433239-76ab-49cd-ba21-6092ae3c84db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.objects.test_chassis.TestChassisObject.test_save [0.034582s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.663096s] ... ok {2} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.041826s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy [0.411341s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.060939s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.034455s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.030640s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.034971s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.031894s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.054778s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track [0.094471s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.043238s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.047297s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_admin [0.218447s] ... 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-577c2c88-4fa4-44e4-9ded-0b90820ec760 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.033587s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.037371s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.040277s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.025952s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.040118s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.027861s] ... ok {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.056204s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.067062s] ... ok {2} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.024499s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false [0.238064s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args [0.047882s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.019254s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_member [0.206488s] ... 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-07118d85-05f3-46e2-aa32-bd889bdd4db5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.025912s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.020241s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.019282s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.037694s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.037089s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.034020s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_with_deployment_reboot [0.100703s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_invalid_type [0.025652s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties [0.033045s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.028144s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.046657s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create [0.024270s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.050257s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy [0.041878s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare [0.092293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.036731s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get [0.044313s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_targets_post_observer [0.257874s] ... 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-17386d68-e1ee-47d1-bca0-87b2258d8d40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.048992s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_disable_power_off [0.067806s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.037226s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id [0.066707s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.036725s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid [0.041592s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track [0.074528s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list [0.029289s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.050004s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate [0.052880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id [0.042148s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.036255s] ... ok {2} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none [0.026368s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.028529s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps [0.067064s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.064311s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.031808s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.037182s] ... ok {2} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.027190s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_admin [0.283754s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/93a23f63-7887-4e74-ba63-b3c547b3093c WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bc9a0f5c-c531-4d64-b855-1873b29ba20c X-Openstack-Ironic-Api-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 93a23f63-7887-4e74-ba63-b3c547b3093c could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.025564s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.034693s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_busy [0.087051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.024871s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.037564s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.025504s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.023294s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.038770s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.026387s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.038874s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.026929s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy [0.110719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.032643s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.053166s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_interface [0.059111s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_member [0.195710s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/c5a2271e-f85f-447e-a9be-275ccbc1339d WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-687817f5-3df6-476f-b660-be49cad6c7be X-Openstack-Ironic-Api-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 c5a2271e-f85f-447e-a9be-275ccbc1339d could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.052849s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.046451s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps [0.106966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.035318s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.023715s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.033930s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client [0.030137s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.037791s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.255363s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.071213s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy [0.033240s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_get_observer [0.233372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/65e19848-9183-4d92-ae78-68c362a24671 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2dfebb10-1243-45e5-89b1-e0f877125c11 X-Openstack-Ironic-Api-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 65e19848-9183-4d92-ae78-68c362a24671 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing [0.030759s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.039818s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set [0.029465s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.031949s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict [0.056768s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.031441s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing [0.045441s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default [0.029023s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded [0.062680s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default [0.031519s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.051225s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove [0.033675s] ... ok {0} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts [0.104794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.033562s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_admin [0.195559s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/b0f7db46-f668-47f9-9562-925ad058cb4a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1d249380-da13-4208-a9ec-c37deb324428 X-Openstack-Ironic-Api-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 b0f7db46-f668-47f9-9562-925ad058cb4a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running [0.048026s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.032484s] ... ok {0} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses [0.059016s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running [0.025004s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running [0.031056s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.065449s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running [0.024219s] ... ok {0} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp [0.067560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.032792s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.023897s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.067724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.077330s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll [0.035535s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_member [0.188131s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/0b5c5ff4-1b0a-4b23-85a2-81aa0a077ebf WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-117f347a-e1d6-4126-8985-ebf294fd5baf X-Openstack-Ironic-Api-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 0b5c5ff4-1b0a-4b23-85a2-81aa0a077ebf could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify [0.027347s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.060350s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.072795s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config [0.041207s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up [0.057310s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.051142s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable [0.038859s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.024606s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.053832s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.024749s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info [0.048243s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.024483s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal [0.030014s] ... ok {2} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.027091s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file [0.026737s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.081747s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.030748s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.030016s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_patch_observer [0.261013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/0ab0b5ca-2acd-42a2-9205-13ab9bdb2b78 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-25ce79b8-4347-4fc9-819a-a06e201aba6c X-Openstack-Ironic-Api-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 0ab0b5ca-2acd-42a2-9205-13ab9bdb2b78 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.041553s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.039623s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.038965s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.108129s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.024155s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.048199s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.022137s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.028673s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.022233s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.053999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.024786s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_service_step [0.027555s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.025228s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.073111s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.077449s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.031775s] ... ok {2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.029044s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback [0.029717s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_mac [0.024448s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted [0.024260s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_unknown_hosts [0.036882s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.029994s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_admin [0.290326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/04999fea-f2b4-4c61-94e5-8b42e0f2c505 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a87e9b10-dca4-44a1-96c1-00ff576f8d42 X-Openstack-Ironic-Api-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 04999fea-f2b4-4c61-94e5-8b42e0f2c505 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.109180s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_allowlist [0.032289s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.036190s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_denylist [0.029762s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries [0.024138s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_mac [0.030153s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries [0.021978s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify [0.024992s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_unknown_hosts [0.036725s] ... ok {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_allowlist [0.023529s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps [0.034773s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare [0.172803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_denylist [0.037267s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps_older_client [0.044199s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.052277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_member [0.237658s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/9e1ddd70-4120-46c8-996c-d58fb32ca4d8 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c33cf1a9-c405-46dc-825a-eac3e8db2911 X-Openstack-Ironic-Api-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 9e1ddd70-4120-46c8-996c-d58fb32ca4d8 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_allowlist [0.062103s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.055286s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps [0.041567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_denylist [0.053984s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep [0.055213s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.022081s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes [0.043916s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.025719s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes_with_discovery [0.031458s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_agent_already_down [0.034685s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.131982s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_nothing_on_inspection [0.035937s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_sync [0.041466s] ... ok {2} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.022588s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay [0.083245s] ... ok {2} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.020797s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay_with_fail_if_unavailable [0.045635s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.145606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.045926s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_timeout [0.066533s] ... ok {2} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.060119s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics [0.047583s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.119432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state [0.040201s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown [0.032996s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_volume_volume_target_id_delete_observer [0.528667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/f2e1618a-4ff5-4d40-9e8b-4e59a82e02f4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d49fc4f7-2726-4923-8669-1f89a6ff16c0 X-Openstack-Ironic-Api-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 f2e1618a-4ff5-4d40-9e8b-4e59a82e02f4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot [0.131712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot [0.109937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_admin [0.081572s] ... 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-67299ee2-d2fd-49a3-bb62-22a7c7a7039a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state [0.072398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry [0.142851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance [0.059309s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_member [0.133784s] ... 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-57991ab1-e843-42aa-8000-53ba5d12a3ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning [0.103134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_get_observer [0.135648s] ... 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-449f3866-0541-45c2-b8c0-5f4bb9b01a3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.109219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_admin [0.108584s] ... 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-71f8381b-38de-4bcc-8c06-897869ce442f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.125866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_member [0.108555s] ... 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-74cf825a-db15-4a03-9d37-6c357f308f83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout [0.373540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate [0.054024s] ... ok {0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image [0.131775s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails [0.032102s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_connectors_get_observer [0.120543s] ... 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-13717117-c6e5-495b-a07b-32cb9e0ffd0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track [0.065978s] ... ok Exception ignored in: Traceback (most recent call last): File "/usr/lib64/python3.9/tempfile.py", line 461, in __del__ File "/usr/lib64/python3.9/tempfile.py", line 457, in close FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmp6aacgv7w/tmp2y1ca1e_' {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios [0.030964s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method [0.142109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback [0.026484s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_admin [0.117389s] ... 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-f19f7043-4660-4356-aac3-083c93305586 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios [0.030782s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch [0.025989s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_member [0.092399s] ... 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-20f3aada-a322-4e34-8f26-9deb7ce88671 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi [0.044863s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi [0.068771s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_nodes_volume_targets_get_observer [0.082137s] ... 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-620def88-0148-48e6-bf51-93eafcb8aabb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.GetPxeBootConfigTestCase.test_get_ipxe_config_template [0.070040s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_admin [0.093537s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-51f6e9e5-3b0d-455f-a175-1b0e3bd2eae1 X-Openstack-Ironic-Api-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.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none [0.070140s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_member [0.090077s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-19644ed7-34ad-4403-9f37-fef996c5c38d X-Openstack-Ironic-Api-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.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios [0.058792s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback [0.035810s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.024624s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.040475s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail [0.534889s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_get_observer [0.164990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1bd14f9a-2a5f-4c2c-892a-4244b3986985 X-Openstack-Ironic-Api-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.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.035129s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.036786s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers [0.096296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default [0.040453s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_admin [0.116918s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b2df9baf-8889-4405-9f7b-cb4a15f673ba X-Openstack-Ironic-Api-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.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.045390s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.029628s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found [0.087576s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_member [0.084553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0a34289c-ea1c-4ef4-81a6-7d32f3702ad7 X-Openstack-Ironic-Api-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.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.057373s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_driver_name_get_observer [0.079811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-04b1ec96-809f-479f-9b4a-32f08fcb8096 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate [0.102838s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.055153s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_admin [0.081981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7f936c39-fb6d-48dd-ae06-71726b9f66e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.070816s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc [0.105473s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios [0.035681s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_member [0.065595s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e7e8a7c5-a4bb-4f5e-a976-aa8e40a44c3f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.035728s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.037188s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.032668s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.033362s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.037664s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_properties_get_observer [0.083290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3709253d-5b21-4851-b56d-77345fbf84b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware [0.046306s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_admin [0.068042s] ... 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-223fbfbd-541f-4bf2-bc9c-bdf6219fc71e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to [0.054058s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda [0.141075s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_member [0.077100s] ... 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-808103ec-a447-49ea-8de4-61d6c013604f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.088383s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda_img_checked [0.080070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware [0.028436s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_raid_logical_disk_properties_get_observer [0.110205s] ... 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-d7065313-79bd-461c-9160-03ef20f150ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.052896s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.074391s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.059537s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image_checked [0.060535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_admin [0.099630s] ... 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-c2a1ef12-39d9-486d-8a5e-b1e0a8e9a762 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload [0.096680s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.093431s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_member [0.124567s] ... 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-8e6beba2-b844-4563-a24d-80ab3f28f4b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.098204s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_methods_get_observer [0.068609s] ... 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-235243cd-6e3e-4964-9020-a2d0bbc4851f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.062098s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_checked [0.129178s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_admin [0.084613s] ... 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-0eced8b0-e5a9-441c-98cf-8303bdc05c50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.075052s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found [0.091187s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.034787s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_member [0.066901s] ... 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-24cdc262-d07e-4c64-a59f-70f5f8f244e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.062941s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.083644s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_get_observer [0.084598s] ... 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-7b3ad272-5464-4141-b4d8-396b6a5a47a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.060477s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_checked [0.093488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_admin [0.067926s] ... 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-cb99cda4-a302-4d2e-aec7-e43da7b5bc95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.100499s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.059590s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_not_checked [0.165517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.192067s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_member [0.431266s] ... 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-3b75d39e-5d7d-402e-8e80-c5c0c26966d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.164167s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_part_img_checked [0.414965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.132035s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.159475s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.141262s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_post_observer [0.512397s] ... 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-1e868802-fff0-4ac2-b88c-625e61ee90d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.410415s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.123137s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.068989s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.136173s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_admin [0.388046s] ... 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-75829c77-05eb-45e3-a3e9-6a6345e2405b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_local_download [0.379015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.164645s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.158243s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.119441s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download [0.371661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_member [0.494381s] ... 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-aa124bbf-b543-4b0a-bd22-775ceab97494 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download_rebuild [0.351570s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.430544s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_put_observer [0.420705s] ... 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-fd29a50a-5aa3-4736-b3dc-c85b561af2ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path [0.313986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.373321s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect [0.245264s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect_not_path [0.341387s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_admin [0.322703s] ... 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-e7b2fef5-4512-4955-b1ad-d7603145e23f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.150031s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.156482s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_member [0.300548s] ... 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-1bab83d4-6847-4985-8371-88722db10aa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.153290s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.158529s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.147479s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.137047s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.130095s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.109797s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [1.638260s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.097997s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.148179s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.361963s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_get_observer [1.218568s] ... 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-d398131d-0e90-4638-99ef-46ee162891b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.182591s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.110495s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.135318s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.099373s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.111890s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.125486s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.196398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_admin [0.423246s] ... 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-4c49f9d2-e0f7-4678-82f1-39bcb53fe730 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_member [0.308513s] ... 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-bcb9ec26-a3e3-4cfa-8c1f-3dcbbf489094 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.337685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.395381s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_nodes_bios_bios_setting_get_observer [0.475008s] ... 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-252d95cc-0169-453b-95c7-5d9f3ddfcae3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.565337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_admin [0.642650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-063fe243-0331-4bf2-adf9-97ab975f0170 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [1.510581s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_242_conductors_get_member [0.199603s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3c1e04ec-8a3e-4543-977b-c8f5be152043 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.176419s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_243_conductors_get_observer [0.116996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-50e1a848-b51c-4595-9832-bf04fb050fd0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_disable_validation [0.170529s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_admin [0.119685s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d9ff20de-7bc7-4381-9559-dbe3e743ae8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low [0.105065s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.699404s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.089120s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.105306s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test__download_image_iso [0.058563s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test_fetch_image_iso [0.097612s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_member [0.453097s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-94096940-5549-4871-b142-17e6b85ca868 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc [0.206792s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac [0.087951s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.578806s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_and_uuid [0.072021s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_not_found [0.063742s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_246_conductors_hostname_get_observer [0.386018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9f98a53f-7deb-4eae-ad89-17fa7602df67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_not_found [0.093036s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.262994s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_247_allocations_post_admin [0.159255s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0256d85c-c589-49e3-ac51-6459d6808023 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_wrong_state [0.106076s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_248_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward. {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_not_found [0.076690s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_wrong_state [0.097526s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.236555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_post_observer [0.142286s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e515a417-e599-4db7-bd9e-f86650a705d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs [0.054286s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_admin [0.085485s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b5bcc3af-d56e-45b9-952e-051ba528d8a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs_partial [0.091386s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.152043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_member [0.083689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8271d9d9-6e0c-4c53-a646-56391e397871 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_unknown_bmc_and_mac [0.111824s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_252_allocations_get_observer [0.097552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6b4c3a0c-5922-4de6-ab4e-4681e9d91253 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates [0.157586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid [0.083881s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag [0.098501s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_admin [0.105029s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/fce15b24-526a-42df-b005-fea9af025c96 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-00eaac2a-ad2b-412d-ae7f-8b5e15f0bd57 X-Openstack-Ironic-Api-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 fce15b24-526a-42df-b005-fea9af025c96 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error [0.078756s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_and_unknown_macs [0.176726s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_member [0.112638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/8435bfd8-4b94-47f9-a3d3-67aba0eaf950 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-86d5fa4e-467c-4f3d-bf7e-8432cf2e2f78 X-Openstack-Ironic-Api-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 8435bfd8-4b94-47f9-a3d3-67aba0eaf950 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported [0.084763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_get_observer [0.087417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d9459f6a-38b7-4205-a86e-c5ad4a422aff WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4c73c7c9-19d3-40d9-8b57-12e76ace28a1 X-Openstack-Ironic-Api-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 d9459f6a-38b7-4205-a86e-c5ad4a422aff could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_not_found [0.131865s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.103042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_admin [0.104942s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/05ca2e5d-de18-4f62-8069-3c1315708b24 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49dced9e-38fa-4369-913d-348b885595c1 X-Openstack-Ironic-Api-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 05ca2e5d-de18-4f62-8069-3c1315708b24 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_wrong_state [0.093178s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.100794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_member [0.088659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/53ec5584-135a-48f5-a426-04811b3c7bc0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-06c1f6ad-c91b-45e6-9747-0e315082edce X-Openstack-Ironic-Api-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 53ec5584-135a-48f5-a426-04811b3c7bc0 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_bmc_and_uuid [0.073707s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.099548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_patch_observer [0.097240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/3a84bbde-d428-436a-8de7-559727451395 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e24db357-ca6f-4c66-ab06-465641128618 X-Openstack-Ironic-Api-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 3a84bbde-d428-436a-8de7-559727451395 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs [0.097026s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_bmc [0.079759s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_admin [0.125421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/265fef0f-4c3b-40b5-a035-abc00ef09d8b GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d5ac2b5c-a0df-47d0-acf7-3e58b13e6ec9 X-Openstack-Ironic-Api-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 265fef0f-4c3b-40b5-a035-abc00ef09d8b could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.154276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_uuid [0.073499s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_member [0.106534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/500eaa1d-6a4b-4321-b2d9-f7165300be20 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cc87796b-92f3-457a-ac00-dac6029ae861 X-Openstack-Ironic-Api-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 500eaa1d-6a4b-4321-b2d9-f7165300be20 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc [0.079100s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.135028s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_and_unknown_mac [0.051126s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.071553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_261_allocations_allocation_id_delete_observer [0.101140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/6f639f12-1bcf-48b3-98e2-413c5f272ed4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8352885b-4d51-4be7-852b-0d2e90083a46 X-Openstack-Ironic-Api-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 6f639f12-1bcf-48b3-98e2-413c5f272ed4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_resolved_by_macs [0.064085s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.053076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_no_input [0.085084s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.068005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_admin [0.165027s] ... 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-afd66270-6e07-4a51-9d89-e030a3a0e884 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.077782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries [0.100479s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_404_exception [0.062444s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_member [0.096212s] ... 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-ccc31f2b-d7e5-43ee-8838-eed22c089a42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.084935s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase [0.076636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_264_nodes_allocation_get_observer [0.127026s] ... 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-5a40922e-83b8-4786-afc4-4ded73283342 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exception [0.161773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error [0.071846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_accelerators.AcceleratorsTestCase.test_accelerators [0.071408s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_admin [0.110752s] ... 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-08f7441f-c518-42e1-a106-4f99a736949f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_architecture.ArchitectureTestCase.test_architecture [0.088188s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_member [0.100300s] ... 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-b632342b-5425-4336-8b0d-19814ccb146f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exceptions [0.189256s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_cpu_capabilities.CPUCapabilitiesTestCase.test_cpu_capabilities [0.095879s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.iPXEHttpBootTestCase.test_http_boot_enabled [0.093673s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_267_nodes_allocation_delete_observer [0.119349s] ... 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-c16577d4-5c80-471a-8ee9-a18a6d436871 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_extra_hardware_with_errors [0.099936s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.058204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.iPXEHttpBootTestCase.test_prepare_ramdisk [0.167329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_admin [0.199407s] ... 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-b4cc937d-3049-485a-935f-6ef147c7e376 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_on [0.111950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.iPXEHttpBootTestCase.test_prepare_ramdisk_rescue [0.094851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.iPXEHttpBootTestCase.test_prepare_ramdisk_uefi [0.086283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.101513s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_member [0.173831s] ... 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-66dc0cd1-45e8-484c-92f8-cc514f1b4769 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_valid_extra_hardware [0.098764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.156615s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_post_observer [0.183655s] ... 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-4b312e68-6b19-49c5-b899-c40f4ec64879 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end [0.072197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.091929s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_admin [0.167841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9668289e-f156-405f-baba-296d0e5c048a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start [0.104425s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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 [0.454865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_member [0.526411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-72e4aea1-7d19-4c4d-927a-61cc6d0e4e10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_interface_not_in_all_interfaces [1.208778s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.432758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_273_deploy_templates_get_observer [0.496239s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8dd89c0b-3500-42b9-b37b-3260e8317d74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_chassis_id_subtype [0.326000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_cleaning [0.373231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_admin [0.491864s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/453b051e-25f5-4321-834b-91810ae04c0f WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bd662d2f-113f-4cec-a4db-3a49909abe18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_port_id_subtype [0.332584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_reboot_to_instance [0.480536s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.322590s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_member [0.431780s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/e8e2a2d1-3256-42f8-950c-a2f0632a6c9a WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1fb57490-a795-4a4d-8394-bc7cf0f7a4ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_lldp_none [0.291796s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_get_observer [0.427549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/315b7e58-7266-48c8-87b5-9c2498791b29 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-60de4bce-4e47-4029-b67b-5d2390d2a70e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_no_port_in_ironic [0.321049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.335730s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_instance [1.321852s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.342853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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 [0.313767s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.310219s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_memory.MemoryTestCase.test_memory [0.267706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.342975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_admin [1.491729s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/b98947a8-2a18-4556-8e31-44b152710d92 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0e5af561-ec76-4893-abed-2649c3d80c61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties [0.241882s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_add_ports [0.372275s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_member [0.372921s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/d4b05508-7ff3-4df5-8602-f5d4ae311c59 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-051f2fdb-04c9-452b-ad07-85f8c9b39281 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance [0.383177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_ports.AddPortsTestCase.test_duplicates [0.333600s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_patch_observer [0.388732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/ad15cbdf-fdc1-41a2-84ed-6d0c18d4a6cf WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7aae6470-c5ef-4817-a70f-13e80c5d7a8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_multiple_new_root_devices [0.350884s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_instance_active [0.429266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_admin [0.525523s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/ea75067d-f444-4cba-8aa0-9bc8a341974b GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1846fa2c-da29-40c9-b38a-7727607d0ea8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_new_root_devices [0.398918s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_instance_kickstart [0.452449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid_device.RaidDeviceTestCase.test_no_previous_inventory [0.249888s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_member [0.429308s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/dada8465-f392-42c4-90fe-81ddd9141c34 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-da3d2146-49e0-4044-9cb5-6460e36b5cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios [0.377651s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid_device.RaidDeviceTestCase.test_no_serials [0.287106s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_instance_lenovo [0.294358s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_deploy_templates_deploy_template_id_delete_observer [0.449983s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/0f2707be-b094-4288-91ea-6705697fa1dd GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-19544d64-06e5-4a55-8d19-a22e9529b534 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_already_set [0.318555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_instance_ramdisk_pxe_conf_exists [0.431326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_raid_device.RaidDeviceTestCase.test_root_device_found [0.367611s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_283_chassis_post_admin [0.470452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2e93f33d-a966-44f7-a148-3a2769bca779 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_active_interfaces [0.142332s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_all_interfaces [0.121394s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.385496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_no_pxe_fallback_to_all [0.167670s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_member [0.418127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2dbc22d7-6f61-43f6-bc46-4b530c81584d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_nothing_to_add [0.142241s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_pxe_only [0.144767s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk [0.439548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_post_observer [0.415852s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9c977b43-744c-4d2c-b350-79bade1d17a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test [0.243748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_bios [0.440526s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test_store_logs [0.216760s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_disable_power_off [0.233785s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_286_chassis_get_admin [0.527436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e24c00ac-589f-42fc-8dbb-3b92d4fd0c49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning [0.467394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_ok [0.317539s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_287_chassis_get_member [0.434231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1226b601-b83a-4657-bb24-3aacd11b4248 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_unversion_url [0.305670s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.421354s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_get_observer [0.452584s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d4b10165-b832-45fc-9123-36a5c2738ab2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disable_power_off [0.298963s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disallowed [0.168972s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.490105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_admin [0.409061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ad7d8502-3f02-4664-aed3-fb546a009c3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_ok [0.279852s] ... ok {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.160732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_member [0.300945s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6011530a-c5b2-4d45-a122-6cc5cef3b754 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue [0.546613s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.176152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_detail_get_observer [0.300520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f4ac5237-38ac-4a20-bd9d-556331897d05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.285874s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_rescue_bios [0.382532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.364515s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_admin [0.547079s] ... 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-ad6433cd-8f3e-416a-b4c3-3d7928650dee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.461689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_bios.IRMCBIOSTestCase.test_apply_configuration [0.296809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_member [0.346395s] ... 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-6a1c62ae-895d-4454-b281-c2908c89e484 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.233630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_bm [0.450658s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.315022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_get_observer [0.466939s] ... 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-9f289c76-b3c8-4824-9844-85382ef6631e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.479066s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.266716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_admin [0.436498s] ... 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-08137af3-72d9-4990-8152-e817831ed501 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.284905s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.621657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_bios.IRMCBIOSTestCase.test_validate [0.281442s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_member [0.458504s] ... 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-946ed7b8-8cc3-4df2-8a6d-cecb1ceabf39 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.154095s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca [0.151678s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca [0.169880s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.539364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_patch_observer [0.432611s] ... 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-7bd978f2-789e-4438-b8fa-1afccf0aa7ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.172427s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.174540s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_admin [0.491403s] ... 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-09f59e78-152b-4b20-a84a-ea42f2fe02bc X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.192837s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password [0.179880s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto [0.167597s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_member [0.472951s] ... 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-93c5cb46-9f23-4849-8b7f-c714a94a4155 X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.141454s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.200241s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password [0.163150s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_chassis_chassis_id_delete_observer [0.509447s] ... 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-ca89211d-1ce9-4bef-9131-a7b0a89ccc3c X-Openstack-Ironic-Api-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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto [0.205719s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi [1.723305s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.184253s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user [0.156630s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_admin [0.504105s] ... 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-33d5ede7-2a64-4242-8f40-687927211c35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_missing_deploy_kernel [0.290420s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.130384s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips [0.144920s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.339782s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.146190s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_member [0.399299s] ... 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-77a17905-a62e-42cf-999b-4303bca6390f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca [0.176342s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.142378s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.330007s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_303_node_history_get_observer [0.439132s] ... 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-dc5d5383-8bfc-4ce1-b854-c4a86d245292 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.142655s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.084747s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.314734s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password [0.133283s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_admin [0.338359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7927192a-fc0e-42ef-a389-a008a7468858 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5549a358-a4b0-4895-94de-0cc3aa22e627 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password [0.136242s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.315609s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_member [0.429304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f00c52db-3778-417e-8c9c-a38aa2e7f62a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f0516a30-6deb-46db-9dc0-8aa8827189a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.291230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.337412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_306_node_history_get_entry_observer [0.375429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0b6bd1b3-26ca-47ea-a06c-c0bbb769ba40 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4f8388ef-226d-441d-b0fb-2904c03375e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set [0.366820s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user [1.260715s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin [0.350657s] ... 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-a380de93-ab88-410c-9b5c-dec47c275546 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.169159s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password [0.172103s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_missing_stage2_id [0.455693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_no_image_source_for_local_boot [0.151627s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password [0.178977s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member [0.397564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ac82c765-7ec1-4b43-b3df-92f3433ba570 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 [0.123706s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local [0.217164s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca [0.135319s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security [0.118735s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.229204s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.109789s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader [0.540443s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a1722a9c-b219-43c2-b179-db2686649bf6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.118595s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_snmp_driver_info_with_snmp [0.143539s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.153419s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.175674s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.110891s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.181040s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.117154s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_post_service [0.456104s] ... 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-e2271996-a8ea-48ba-acfb-b8829b2cd1c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.116985s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_admin [0.237288s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e96c106b-e9a9-48e9-951f-01d4e7c47a48 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-22T18:25:31.021015+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_ipmi [0.274239s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.125547s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.113190s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.115102s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_redfish [0.269228s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_member [0.326367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b8ec9e17-2030-4942-83cc-4eabdc43cf62 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-22T18:25:31.348863+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.151989s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.184342s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.157507s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.032574s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.025288s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.215445s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.032491s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.028999s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.027195s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_reader [0.425316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48f80b29-00df-462f-a1e8-4c449ab29349 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-22T18:25:31.606843+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.099160s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.229088s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.096312s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.110947s] ... 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.128799s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.175977s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_admin [0.421342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b3115a6-9258-49e1-90e1-2d4b91373745 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": "952af24f-b499-4ffd-b8bc-a886f5e2c9c4", "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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.140727s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.084011s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.753141s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.079406s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.071569s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.064174s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.101238s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.300700s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_get_service [0.516469s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-733d242f-60ee-4d85-8e97-a7632f3baa92 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": "0adcfb5a-eced-4e68-bae6-ddfe136515c9", "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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.122648s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.093090s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.085734s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.052778s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.097646s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.493026s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_012_nodes_get_service_project [0.429718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-686c00dd-d17e-4415-9d89-9d5976fadc79 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": "c31018c1-6d33-499e-a217-24e1501ec7f3", "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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.077474s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.081432s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.102904s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.076414s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.107244s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.441906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.127571s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.188954s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.110075s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.063753s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.073651s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.203000s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.107238s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.177156s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.110421s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.088058s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.085230s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.190691s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.142880s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.238730s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_get_service_project_disabled [1.521152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb66c01a-7e67-4961-b6de-bff7bc2ff6a9 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.148509s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.126223s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed [0.182394s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.121673s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.083276s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_get_service_project_admin [0.401772s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b89cb55f-a883-42ed-b52b-38141d4cdba5 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.162500s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.096315s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.518482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.085128s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.106153s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.120961s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_get_other_admin ... SKIPPED: Not implemented yet {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.140649s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.119076s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.581729s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.043231s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.043100s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.181391s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.044829s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.041911s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_detail_get_admin [0.528999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5d0c54bf-6445-464a-bd71-04854f08d938 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-22T18:25:36.369226+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-22T18:25:36.387714+00:00", "updated_at": "2025-05-22T18:25:36.421449+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": "3f294bd1-7460-483e-aee5-a33e26d6699d", "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": "3f294bd1-7460-483e-aee5-a33e26d6699d", "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-22T18:25:36.549928+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.050275s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.144171s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.099767s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.113524s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [0.077449s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [0.083881s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.054098s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_done [0.187915s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.036898s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [0.054071s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_detail_get_member [0.474250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9887f5c7-ad80-4bfe-a535-9bcc534c6c47 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-22T18:25:36.853079+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-22T18:25:36.854418+00:00", "updated_at": "2025-05-22T18:25:36.885252+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": "fac09549-76c2-44e4-ac78-bcf8b30162d8", "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": "fac09549-76c2-44e4-ac78-bcf8b30162d8", "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-22T18:25:36.988988+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.050183s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [0.042070s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail [0.252857s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [0.064700s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.050639s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.061210s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail_servicing [0.196754s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [0.078422s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.039730s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.089972s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_nodes_detail_get_reader [0.487488s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1901c84-b33a-4c27-809b-a99a3b7378b9 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-22T18:25:37.330723+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-22T18:25:37.342704+00:00", "updated_at": "2025-05-22T18:25:37.354135+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": "7725dcd2-470d-4b54-b3b2-f1798a8ec2f5", "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": "7725dcd2-470d-4b54-b3b2-f1798a8ec2f5", "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-22T18:25:37.526853+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_update_in_progress [0.195725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [0.097379s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [0.081278s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_no_targets [0.171902s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [0.065327s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.047467s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_targets [0.114083s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.070597s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_nodes_detail_get_service [0.362433s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-92267d19-4127-4cce-b312-69bfc47a5aab 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-22T18:25:37.783434+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-22T18:25:37.796412+00:00", "updated_at": "2025-05-22T18:25:37.811177+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": "63112d31-75a5-4e37-bb4b-d10a16e7a192", "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": "63112d31-75a5-4e37-bb4b-d10a16e7a192", "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-22T18:25:37.906669+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [0.062994s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_error [0.091577s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [0.070993s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_https [0.098390s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [0.094293s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_swift [0.085180s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.091538s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_get_admin [0.356582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfe9f316-08b0-4365-a574-d41f6f452fc1 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-22T18:25:38.159942+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.103862s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_conn_error [0.167361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [0.051895s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.051539s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.047053s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.044963s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.044799s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_still_waiting [0.223370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects [0.028488s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_get_member [0.335330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-03bd91a7-9237-4c92-8d9a-1e6ad0f4ce35 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-22T18:25:38.528479+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects [0.054121s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects [0.038292s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.032038s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.046814s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.045369s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.055829s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.040319s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_get_reader [0.322106s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfcd8b00-0e2e-46d6-aeff-b91704a7bc5a 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-22T18:25:38.856487+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.042353s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.058251s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects [0.036816s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc [0.034095s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.052753s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.033590s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_task_monitor_not_found [0.637113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.032487s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.048402s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_patch_admin [0.347012s] ... 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-02660357-b59c-4a8d-9c26-fd28429382b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.050626s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_wait_elapsed [0.129547s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.058541s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_update_waitting [0.085484s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.061148s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.032470s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last [0.087909s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.029514s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_system_admin_can_patch_chassis [0.275688s] ... 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-8e4f6417-ce5d-4664-96f4-49d680938339 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.084311s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last_service [0.098981s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.054726s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_more_updates [0.067603s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.053489s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.055041s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.027528s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_create_all_components [0.117728s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.030238s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_system_member_can_patch_conductor_group [0.277043s] ... 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-bf8f2c25-9361-4f8e-984d-a87b3746e8a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.028749s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.027186s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings [0.087132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.023331s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 [0.022820s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings_service [0.072167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.040998s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.026450s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_get_properties [0.049191s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 [0.022508s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 [0.021560s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.021602s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings [0.056315s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_026_nodes_node_ident_patch_member [0.262570s] ... 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-40f645f0-d05d-4955-ac4a-f6950273c558 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.052366s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings_service [0.070758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_all_components [0.041234s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bios_component [0.086188s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bmc_component [0.068569s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_node_ident_patch_service [0.260279s] ... 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-797c985a-09fa-49e8-9767-1177b99f804f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings [0.057547s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.313308s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings_service [0.066421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.059973s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.022968s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_simple_update_action [0.049891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_028_nodes_node_ident_patch_service_project [0.157157s] ... 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-d08d01af-8e3f-401f-abc3-ddc754f439cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.023594s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.024039s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.033161s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_updateservice [0.069287s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.026601s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates [0.036684s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_node_ident_patch_reader [0.110584s] ... 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-a6d289a4-e6c3-40d5-919b-6cdd4392b7db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.026820s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates_empty [0.034275s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.024786s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.027387s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_validate [0.061710s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.031526s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_node_ident_delete_admin [0.097276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-26837c00-78c9-4cc1-9b26-8c5b4f4823c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.057064s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none [0.071395s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_node_ident_delete_service [0.097444s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1db36689-9ace-4e47-9546-5c492c39c165 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.055158s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.049091s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs [0.035244s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.054711s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_node_ident_delete_member [0.085585s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4752d4b9-df3c-4123-bdfe-38488d619f51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu_arch [0.060742s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.055236s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.051251s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.034239s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_node_ident_delete_reader [0.090528s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1909c1e3-7b60-436e-a798-1d9e11fcce96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.055970s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.054383s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu [0.027989s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_validate_get_admin [0.092088s] ... 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-ea29eb6c-8b3b-425c-804f-5dbf2a0f20e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_count [0.084711s] ... ok {3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.072765s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_validate_get_member [0.073766s] ... 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-bcc2087d-8935-4546-91d7-b77cf47c377a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.041961s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_frequency [0.106258s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.037766s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_validate_get_service [0.089623s] ... 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-475b116c-d20a-4dc3-9ba5-1823be29ef91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.031530s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_instruction_set [0.051919s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.025591s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_validate_get_service_project [0.079869s] ... 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-2e147100-e078-465b-b18d-4b9530d7727a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.034612s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_model [0.078810s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.035457s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses [0.032463s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpus [0.059147s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_validate_get_reader [0.106020s] ... 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-cfbbc0ab-94ce-40ab-98a8-139bf157ff2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.043116s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.031518s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.084381s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.028329s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.026287s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_maintenance_put_admin [0.120067s] ... 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-e2b441fc-8084-4069-8b81-c69b231573bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.032105s] ... ok {3} ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.059577s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_040_nodes_maintenance_put_member [0.085524s] ... 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-89b80b62-837c-40bf-a212-ffb674c172c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_ilo.Ilo5HardwareTestCase.test_override_raid [0.075727s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_maintenance_put_reader [0.072380s] ... 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-9b7f02e8-6bee-4000-9376-d5641be55da0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces [0.058573s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_042_nodes_maintenance_delete_admin [0.095668s] ... 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-6a0af632-1a8c-408e-af42-8ce3f07603fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_snmp.SNMPHardwareTestCase.test_fake_management [0.064697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.032986s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_maintenance_delete_member [0.084649s] ... 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-48f977a8-247c-47a6-ae69-1036a3101d79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.029993s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.424682s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.033836s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.048413s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_maintenance_delete_reader [0.135121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1d18dd7a-0600-4e65-ad6f-439820cf5cbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.053522s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.136603s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.052578s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_boot_device_put_admin [0.102325s] ... 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-20776350-dac0-486c-8c16-a5ac96891914 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label [0.055361s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage [0.097688s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_management_boot_device_put_member [0.067987s] ... 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-17396183-b009-45ce-a6e1-9c0e14648c02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.063054s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage_and_storage [0.079412s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.048802s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_management_boot_device_put_reader [0.084358s] ... 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-b251032d-bbad-4572-8c15-52accd214fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.031417s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability [0.056928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_storage [0.112548s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append [0.063023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_system_vendor [0.069778s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate [0.074465s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.078206s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string [0.038521s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.032398s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.075241s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.046466s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_management_boot_device_get_admin [0.337545s] ... 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-775e7d3e-f45f-4377-a50a-f6f544a6db36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.028100s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs [0.074869s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.031544s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_management_boot_device_get_member [0.095523s] ... 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-7a058ce9-5df4-45ee-b3b7-b71e7b3597d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.073785s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac [0.132263s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_management_boot_device_get_reader [0.080680s] ... 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-10639bcc-e7d1-45dd-827c-aaa8872db266 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent [0.062524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_051_nodes_management_boot_device_supported_get_admin [0.071933s] ... 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-08cc9d8e-d78f-4c94-8e14-f5a59a160210 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_utils.UtilsTestCase.test_force_persistent_boot_false [0.076599s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs [0.136134s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true [0.066739s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_052_nodes_management_boot_device_supported_get_member [0.093713s] ... 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-0d3376b4-30d5-4dc9-9c58-2d13276b04e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled [0.080030s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability [0.069747s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.030949s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled [0.071132s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_management_boot_device_supported_get_reader [0.143883s] ... 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-ad7bdab6-2fde-4f7c-b2e6-b453f95fb421 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.089652s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation [0.085249s] ... ok {3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string [0.031985s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_management_inject_nmi_put_admin [0.086884s] ... 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-d84486ba-1ae7-4615-ba30-f53319b12d09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.037893s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.048794s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.032458s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.026424s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done [0.063378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.031401s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_management_inject_nmi_put_member [0.116476s] ... 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-48f95581-a04c-40e7-9490-1b211d4804b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail [0.068171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.061563s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_management_inject_nmi_put_reader [0.105463s] ... 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-88eb2e5c-dd2d-42c8-a746-4f9a8bbdbf9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.053892s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress [0.092434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.061595s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_get_admin [0.080515s] ... 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-eb8e3ac5-6e27-4f96-9727-eb61ba5a217b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.034337s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.033802s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error [0.114582s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_058_nodes_states_get_member [0.091328s] ... 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-c518b965-102b-47ec-99ce-447c0eb76e87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.045510s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting [0.063793s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_059_nodes_states_get_reader [0.065216s] ... 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-b5bb8fc0-e0dd-490a-9c34-f3b9ca8dfed5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found [0.058727s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed [0.061539s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_power_put_admin [0.104608s] ... 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-7733b31a-b7c5-4d35-a0d0-81724bce941b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_061_nodes_states_power_put_member [0.089114s] ... 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-877eead2-e010-4363-8365-7e0fdc6075ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update [0.114233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates [0.050307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.334778s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_power_put_reader [0.107797s] ... 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-63c3de1e-df5f-4704-8ef1-2ab2660b3cfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_conductor.TestConductorObject.test_save [0.038881s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait [0.071681s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.030841s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_simple_storage [0.040242s] ... ok {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.034604s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_boot_mode_put_admin [0.097988s] ... 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-be691c8a-792e-4db2-a1ad-27e12bd19f53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.035100s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_storage [0.063360s] ... ok {3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create [0.054034s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.054488s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_boot_mode_put_member [0.118430s] ... 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-a4baec4e-2787-45f9-9660-5a558e761c0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node [0.045652s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.043356s] ... ok {3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy [0.079712s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.097182s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_boot_mode_put_reader [0.115505s] ... 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-34469969-b5cc-4db1-833f-3bbc9725963f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node [0.070169s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed [0.058782s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_secure_boot_put_admin [0.073281s] ... 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-20d760be-f7c1-415e-b64a-1b272d5d7220 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid [0.043191s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd [0.043419s] ... ok {3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid [0.054663s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status [0.049072s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_secure_boot_put_member [0.080221s] ... 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-0f5607ef-ba0d-4814-b944-ab4f2d3e9e83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd [0.038041s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error [0.040371s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https [0.032146s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_secure_boot_put_reader [0.110678s] ... 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-61743ca8-98c7-4af3-ad80-b33ab6bc8502 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_deployment.TestDeploymentObject.test_not_found [0.124345s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift [0.037686s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_states_provision_put_admin [0.086423s] ... 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-167bf036-5b0e-459a-b02f-025f6322deae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh [0.099764s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_attach_virtual_media [0.090653s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.053892s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot [0.051249s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_states_provision_put_member [0.090362s] ... 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-3a9c99c2-c1e7-41df-944a-e7ae4d0e3cc3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.034000s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_create [0.036106s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented [0.059872s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_states_provision_put_reader [0.082143s] ... 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-19f00b85-26bc-44b0-9ec5-153daf14199c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component [0.040520s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_does_not_exist [0.038124s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media [0.102451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.081120s] ... 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-61ba7ec5-3bd5-4394-9297-4f00c8913575 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_node_does_not_exist [0.066571s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_save [0.028983s] ... ok {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_create_and_update [0.037186s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_states_raid_put_admin [0.109669s] ... 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-539cc351-17e8-487d-8880-eab35a2083ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_074_nodes_states_raid_put_member [0.074376s] ... 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-37eec16b-dc11-4f16-a85c-c68e55a81be4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_nochange [0.090775s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.057251s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_states_raid_put_reader [0.099436s] ... 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-0549da0e-23db-4e36-8f7b-0b1caa7d718b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.068643s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media_all [0.355477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_allocation_id_unsupported_missing [0.052076s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_states_console_get_admin [0.088818s] ... 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-e3e6db5b-f395-430c-b822-bcbf2fba9ab6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor [0.042957s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.065151s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.055544s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.044737s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_states_console_get_member [0.131267s] ... 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-181874c7-7273-42a9-bc0b-54dee16dcd60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.148056s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_states_console_get_reader [0.098521s] ... 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-49f7da57-e1e5-4855-a833-c24e065d763e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.060148s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state [0.155208s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_automated_clean_supported_missing [0.051838s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_states_console_get_service [0.111176s] ... 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-ea22764c-b66e-4db7-8512-1a689f6ceff8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.033035s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.036413s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state_disk [0.116403s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.026595s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.024133s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_missing_attr [0.051710s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_states_console_put_admin [0.124129s] ... 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-5e3287ff-0ff5-4df6-9409-c52eab7f1ada X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.036544s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found [0.049368s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.035639s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.026014s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.023195s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success [0.070993s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_states_console_put_member [0.106295s] ... 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-f4cb0600-e81d-4aaf-b19b-24aed863f2f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.024277s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.026412s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.026553s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.087856s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_states_console_put_reader [0.119412s] ... 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-3999d380-4ac0-4643-a5c7-18de96e7d096 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing [0.056532s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state [0.084625s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set [0.062257s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_states_console_put_service [0.080226s] ... 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-273a53a6-6f33-41e4-9d6b-c5a6519bdb24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing [0.036239s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default [0.026411s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented [0.092372s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default [0.028721s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove [0.035112s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_vendor_passthru_methods_get_admin [0.133646s] ... 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-bc97b325-4fac-4d55-b0cd-1e6db4657095 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.025556s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.074873s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.022952s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.027125s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.076526s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_vendor_passthru_methods_get_member [0.105544s] ... 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-1290b636-3ee6-43d8-ae74-eee4686f1b58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.040940s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.025021s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.069573s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.034832s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.032537s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators [0.056335s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.035927s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.027254s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_virtual_media [0.073165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.025933s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.023476s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.034895s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.095050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_fault_supported_untouched [0.034366s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_vendor_passthru_methods_get_reader [0.291724s] ... 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-f356d3de-d289-4dfe-a596-26f00103f6e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.030323s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_vendor_passthru_get_admin [0.070645s] ... 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-36b43111-af8b-4854-bd8c-a8cf124f6f87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.084972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_fault_unsupported_set_remove [0.037909s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.032677s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default [0.057483s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_missing [0.025875s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_vendor_passthru_get_member [0.094173s] ... 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-9fa215f8-2877-49e4-be87-38d70dc917cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_node.TestConvertToVersion.test_firmware_supported_set [0.035223s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented [0.039707s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device [0.047116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_firmware_unsupported_missing [0.043699s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_vendor_passthru_get_reader [0.087403s] ... 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-17eba374-1b08-4129-a504-53997d480c7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat [0.042348s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_firmware_unsupported_set_no_remove_default [0.066109s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure [0.052721s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_firmware_unsupported_set_no_remove_non_default [0.034042s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_remove [0.028111s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_vendor_passthru_post_admin [0.116161s] ... 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-dc705bb1-4d9a-408f-a13e-83f28e6685ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop [0.057534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_lessee_supported_missing [0.032258s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set [0.026914s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing [0.025531s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_vendor_passthru_post_member [0.079601s] ... 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-aa31102e-32e5-481f-a22c-d7e01fe13045 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.082826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default [0.032124s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default [0.058272s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.087717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_092_nodes_vendor_passthru_post_reader [0.103949s] ... 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-32f1dc5c-58da-4112-91cf-b57f17ac4e76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove [0.057583s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change [0.063680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_owner_supported_missing [0.044437s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_http_boot [0.077839s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_owner_supported_set [0.078613s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_vendor_passthru_put_admin [0.202711s] ... 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-3810f7ec-7c37-432c-9d59-90a8321302a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.044429s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback [0.110280s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.133428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_094_nodes_vendor_passthru_put_member [0.176493s] ... 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-9d2e5075-f7aa-4663-84a2-0c57929ff384 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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_095_nodes_vendor_passthru_put_reader [0.124031s] ... 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-b8565309-631e-442e-bddd-9ed3800a44d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.311085s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change [0.162706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.031412s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.053039s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.064219s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_vendor_passthru_delete_admin [0.189164s] ... 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-ddbd853e-2f91-4725-a015-58b1cf4528c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.057455s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.061901s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor [0.269984s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.088418s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_vendor_passthru_delete_member [0.258663s] ... 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-a8c84c78-5179-4939-8015-2e31185dd538 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode [0.154194s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_protected_unsupported_set_remove [0.117888s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.100119s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_vendor_passthru_delete_reader [0.203044s] ... 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-4a36adb4-9fd4-4914-be59-10a2e59f3515 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.180293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_rescue_supported_set [0.078690s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.036840s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.027827s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.026706s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported [0.164476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_rescue_unsupported_set_remove [0.021312s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_traits_get_admin [0.185710s] ... 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-12e435d0-963e-43a5-891c-96c1fb117342 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing [0.020980s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set [0.032325s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing [0.036831s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state [0.112843s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default [0.033610s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove [0.050149s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.046675s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.028121s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_traits_get_member [0.283374s] ... 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-0e941c81-c1e5-43c7-a0d4-19e436c47ac7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.035936s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state_disk [0.175888s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestConvertToVersion.test_traits_supported_set [0.024573s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.025172s] ... ok {3} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.029626s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state [0.085387s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.031420s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.030566s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_traits_get_reader [0.162650s] ... 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-1df273c2-ebab-4013-a04b-072c73c640a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.030477s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails [0.092750s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_convert_conductor [0.039062s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.027688s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.031802s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect [0.095240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_newer_version_backports [0.021371s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_traits_put_admin [0.160073s] ... 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-51e566a9-2323-442f-8413-578c41c351d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.025376s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.028666s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.048300s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization [0.026045s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.018502s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.019667s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_traits_put_member [0.162454s] ... 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-3be7191c-31ed-4464-94c4-d9f39d9dcded X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.020045s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.025820s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.026098s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.022247s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_traits_put_reader [0.101809s] ... 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-ba0325ba-75fa-413f-933f-7c8d0fcc286a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_port.TestPortObject.test_create [0.024789s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address [0.026063s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_traits_delete_admin [0.068304s] ... 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-1f14b486-7ceb-47d6-9261-fdfcd811cff0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address [0.032171s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.031912s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change [0.399573s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name [0.023120s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_uuid [0.022866s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown [0.045699s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_106_nodes_traits_delete_member [0.091875s] ... 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-2ee8324d-26e8-46f6-a89d-e194cc46a77b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.024291s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner [0.028725s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.035517s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_traits_delete_reader [0.093237s] ... 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-28bbddfb-a462-4aad-9c99-39370b43aa2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented [0.105186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_refresh [0.027881s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.028379s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh [0.045250s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware [0.109058s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.029402s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_traits_trait_put_admin [0.143538s] ... 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-55c64677-a245-4313-8fad-e7bd3a6daf72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.033508s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported [0.028806s] ... ok {3} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.044708s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.027901s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args [0.167275s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_109_nodes_traits_trait_put_member [0.169991s] ... 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-4806198f-6050-49e4-bb9f-da625c76c889 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.057517s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage [0.067636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.052506s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.053818s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_traits_trait_put_reader [0.174999s] ... 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-8923d337-23da-4132-a912-e2ae298feb76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both [0.168809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.075176s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.056308s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate [0.077087s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.055302s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.050587s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_traits_trait_delete_admin [0.210915s] ... 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-2f6c28c8-30e8-4708-96e5-11a03ffd52ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode [0.109000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.077436s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.042119s] ... ok {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.032718s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode_immediate [0.138836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.031300s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.035444s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_nodes_traits_trait_delete_member [0.235185s] ... 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-7d9b4adc-29b7-4920-9c6b-dc329a609cab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot [0.111942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.056875s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.047626s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_immediate [0.097862s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_113_nodes_traits_trait_delete_reader [0.167060s] ... 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-4115793c-d5d2-4e8a-abca-9d1f8fdb7c60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.065361s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.040065s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_no_wait [0.085517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.027836s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.025199s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.024063s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.022350s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_nodes_vifs_get_admin [0.154837s] ... 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-cfeb5823-615a-4f15-adff-f9c343198936 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_115_nodes_vifs_get_member [0.086618s] ... 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-d5cbff41-9fa7-46ae-858f-0a4af320a3f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_116_nodes_vifs_get_reader [0.077150s] ... 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-96d31674-0043-407b-a151-21d1cdb9c3f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_117_nodes_vifs_get_service [0.079529s] ... 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-87a1dcf5-fc55-4753-b871-8b0686ad14db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.330045s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_nodes_vifs_post_admin [0.084274s] ... 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-118d73e0-bbb6-47ce-a9e4-0427eb78ca9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.031991s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.035917s] ... ok {3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.038244s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_nodes_vifs_post_member [0.118933s] ... 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-b198b3f9-58c2-46a1-b371-b7f0bc1edfad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.pxe_filter.test_dnsmasq.TestSync.test_change_state [0.040827s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_deny_macs [0.046953s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_no_macs [0.034169s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_nodes_vifs_post_reader [0.114751s] ... 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-c1697936-6613-4aed-8c81-da2de64a22a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.pxe_filter.test_dnsmasq.TestSync.test_only_new_macs [0.024839s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_removed_nodes [0.033126s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_no_update [0.030429s] ... ok {3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_allow [0.028891s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_nodes_vifs_post_service [0.149612s] ... 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-6bc478c8-754c-4e40-92a5-ac952ac8ea9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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.pxe_filter.test_dnsmasq.TestUpdate.test_only_deny [0.035216s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_nodes_vifs_post_service_project [0.098893s] ... 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-3d49ad52-0703-48c3-ad3b-d0c4417c70e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_timeout [1.055361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_get_power_state [0.104013s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_nodes_vifs_node_vif_ident_delete_admin [0.306318s] ... 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-95744224-10dc-4914-9b77-f7aea8fa305f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.080151s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.079568s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_nodes_vifs_node_vif_ident_delete_member [0.104814s] ... 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-c093005a-9c63-449d-bfce-c9b488e84365 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_125_nodes_vifs_node_vif_ident_delete_reader [0.112287s] ... 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-682845f4-272c-470e-bebd-44a96d758d11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.163423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_126_nodes_vifs_node_vif_ident_delete_service [0.080232s] ... 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-d4b8a569-7810-4cfb-ad5d-487074bab70c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_127_nodes_management_indicators_get_allow ... SKIPPED: Not implemented yet {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on [0.186804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_128_nodes_management_indicators_component_get_allow ... SKIPPED: Not implemented yet {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_129_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: Not implemented yet {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off [0.129672s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: Not implemented yet {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_portgroups_get_admin [0.084509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e86fcba3-6d04-49b6-bcd2-3bb8226dff8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off_with_disable_power_off [0.125307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.089710s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-92391653-c7cf-488c-a6c9-e5dbb0c79440 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_on [0.101242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.078140s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_133_portgroups_get_reader [0.110424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-121e3bcb-4135-47aa-94ed-0491ce010464 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached [0.052668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.111789s] ... 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/2e1d5a18-e3ec-4504-926b-4178d2a9284b Openstack-Request-Id: req-9db2118b-bea3-4a47-b623-da15289103f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2e1d5a18-e3ec-4504-926b-4178d2a9284b", "created_at": "2025-05-22T18:25:53.136139+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/2e1d5a18-e3ec-4504-926b-4178d2a9284b", "rel": "self"}, {"href": "http://localhost/portgroups/2e1d5a18-e3ec-4504-926b-4178d2a9284b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/2e1d5a18-e3ec-4504-926b-4178d2a9284b/ports", "rel": "self"}, {"href": "http://localhost/portgroups/2e1d5a18-e3ec-4504-926b-4178d2a9284b/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state [0.112221s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.104442s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.191151s] ... 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-f8ee8d5e-71b4-4ae0-8981-292fd5c320e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached [0.058937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.094194s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service [0.064407s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_portgroups_post_reader [0.200069s] ... 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-ca47f234-0a4a-46bf-8920-27d507eb3ee2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error [0.045155s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection [0.042024s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection_error [0.054711s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_portgroups_detail_get_admin [0.174287s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8078b94a-d566-4524-a960-4639f58ca8f8 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-22T18:25:53.636418+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor [0.076210s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error [0.052900s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_portgroups_detail_get_member [0.106782s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-814e66b8-e30c-4f97-bc38-ce128dd79746 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-22T18:25:53.793298+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service [0.068566s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error [0.043700s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_portgroups_detail_get_reader [0.093031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-84a18ae6-0362-4021-8fe3-45683c37a95c 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-22T18:25:53.867963+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.038074s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.038297s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_portgroups_portgroup_ident_get_admin [0.089064s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8214f529-6414-4572-adb3-55fdc0b4a152 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-22T18:25:53.970253+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_ipv6_brackets_added [0.067516s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.026904s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_portgroups_portgroup_ident_get_member [0.092275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99cdd595-e173-4a07-ae99-22865376a5cb 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-22T18:25:54.066311+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.030605s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.038160s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.039461s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_portgroups_portgroup_ident_get_reader [0.111887s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85bfe29e-f4ce-4a50-a82d-a2dddf2d9abf 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-22T18:25:54.164454+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.031182s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.029701s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.041469s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_portgroups_portgroup_ident_patch_admin [0.094880s] ... 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-9feca3b3-73a2-4057-84b2-d4bc77460bf7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id [0.031432s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.039110s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.029871s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_portgroups_portgroup_ident_patch_member [0.108549s] ... 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-54151e88-efee-422e-a081-3f75b352571d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.032797s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.027281s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix [0.028214s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_portgroups_portgroup_ident_patch_reader [0.182497s] ... 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-2613ba25-7145-4e51-9887-7cfffc664c6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_portgroups_portgroup_ident_delete_admin [0.130917s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a7e71f32-2c22-47f3-8824-ac5280c4992d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_147_portgroups_portgroup_ident_delete_member [0.089080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ee4a1a5-5c0d-4bca-82fb-b3b7bb66e86c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription [0.362713s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription [0.040126s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_portgroups_portgroup_ident_delete_reader [0.075326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a290796a-cda0-4339-95ec-4dba12be2d27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all [0.062484s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd [0.038061s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_nodes_portgroups_get_admin [0.111468s] ... 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-29dbb743-33cf-4ef5-b6de-cc9c0d955d64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions [0.038715s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty [0.040353s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist [0.042651s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists [0.038008s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_nodes_portgroups_get_member [0.141722s] ... 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-ccea5a9b-b034-4e1b-93d2-3b15d02ae17c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription [0.057939s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription [0.037853s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_nodes_portgroups_get_reader [0.117387s] ... 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-cea3d214-2c29-4544-a4e9-e030c7b8631a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription [0.050643s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev [0.087661s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_nodes_portgroups_get_service [0.117902s] ... 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-37695689-b63c-463b-8aa0-ebd2e216099b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size [0.098640s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size_fail [0.071481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.184643s] ... 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-e50415d6-bda3-4e52-beac-8e8ae27d8503 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.091377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_154_nodes_portgroups_get_service_project_disabled [0.164784s] ... 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-3ef9db82-4c33-4798-87b6-dc55c161ece8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.108481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.085320s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 [0.077725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.191944s] ... 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-a88798d9-1204-43c8-a2d3-69796b71a35e 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-22T18:25:55.848238+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw [0.050424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_156_nodes_portgroups_detail_get_member [0.116501s] ... 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-ffbaf211-acf7-40f5-b114-2351086c3f49 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-22T18:25:56.021667+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.085912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentMethods.test_validate_http_provisioning_http_image [0.048028s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_portgroups_detail_get_reader [0.083780s] ... 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-4684b455-029d-4963-a1e3-672686233ae6 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-22T18:25:56.111650+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source [0.043860s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 [0.038223s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.027859s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_portgroups_detail_get_service [0.103115s] ... 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-c66eed22-e905-4043-a2a1-503f64916a43 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-22T18:25:56.203481+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file [0.029480s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http [0.036219s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node [0.034823s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.029425s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing [0.062995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_after_reboot [0.066594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_159_nodes_portgroups_detail_get_service_project [0.343979s] ... 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-1152baf5-3a65-4be3-bb84-faac5d8c8c20 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-22T18:25:56.300921+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_reboot [0.095670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_running [0.053519s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_nodes_portgroups_detail_get_service_project_disabled [0.098025s] ... 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-9443d786-035c-4a42-a8a3-71dc68f2b595 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_empty_result [0.038844s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_has_retries [0.032969s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_multi_command [0.025171s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_single_command [0.025088s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_ports_get_admin [0.112031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e05eb70e-db3a-4df6-bef3-9ee9cb5480e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_single_command_mismatch [0.031940s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_ports_get_service [0.097407s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1356fd63-67ca-4e45-9105-88f70b819221 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps [0.068457s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy [0.049454s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_163_ports_get_service_project [0.083781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6be7bb79-8457-49de-afe2-babb1f928042 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_ports_get_service_project_disabled [0.073661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc1456db-5ece-4d02-963f-365a8006f576 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step [0.111390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.082086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-414cbc74-67bf-4789-851c-fd168d21ce1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_running [0.077928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch [0.050788s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_166_ports_get_reader [0.074755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb49c9ba-cb88-4af1-b850-01a7fede015e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step [0.075001s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_ports_post_admin [0.094812s] ... 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-3c4463ed-49c7-4974-b107-ef3e9381b242 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_service_step [0.057758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step [0.061618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_ports_post_member [0.126369s] ... 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-9d788bbb-95cd-46c0-9261-7f8351a968cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found [0.051004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps [0.057781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_169_ports_post_reader [0.103086s] ... 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-9bc03542-2a07-42d8-9c9c-472312dbecf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob [0.090323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_ports_detail_get_admin [0.075244s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ff2518d-ab47-4a80-8b15-993b2be11e09 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-22T18:25:57.595372+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_ports_detail_get_member [0.079943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8bf6e375-6524-48ea-830c-7da1ea9eb022 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-22T18:25:57.667343+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_custom_interface [0.083804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps [0.069857s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_ports_detail_get_reader [0.085912s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-403216e3-c9c0-4eb0-b17c-edb47d0ec101 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-22T18:25:57.750468+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities [0.067042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_ports_port_id_get_admin [0.083430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8176f2e0-37ec-4011-9088-08510fcc037e 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-22T18:25:57.839546+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none [0.063390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.OtherFunctionTestCase.test_fetch_images [0.037334s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_checksum [0.035113s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_ports_port_id_get_member [0.112889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af740cbf-bd20-4c9e-bb46-42f7020be12b 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-22T18:25:57.949560+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.041071s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_with_auth [0.041181s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_ports_port_id_get_reader [0.108762s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3bfaf159-d774-42d6-9aaf-9d7bc208dcbd 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-22T18:25:58.032589+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy [0.029943s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.046770s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.053562s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_ports_port_id_patch_admin [0.142987s] ... 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-1f46b0bf-f2ed-40d5-9867-463e0b3a21b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_177_ports_port_id_patch_member [0.100483s] ... 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-e8538eee-11e8-4d90-a7f2-9ae9a7d114db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_178_ports_port_id_patch_reader [0.079101s] ... 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-76f80d3e-58d3-437d-bd34-1612dc3ed523 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.274861s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.029207s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_ports_port_id_delete_admin [0.090674s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-35f0c966-460e-46d0-9dee-2090c4e5f33b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy [0.027115s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false [0.028213s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid [0.026638s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_ports_port_id_delete_member [0.085491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3c36ff61-c324-4a4a-a1da-18f1fb13f162 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false [0.027449s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_ports_port_id_delete_reader [0.070346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fa75336a-8d75-4222-9e5e-397dd5edaf8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.128412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_nodes_ports_get_admin [0.098058s] ... 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-7e479ea6-7ea8-4365-933a-a6ccd8c89900 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.109474s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_nodes_ports_get_member [0.124917s] ... 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-40e2dfe5-eb20-4121-a0f1-a0c7e431243a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.052584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide [0.067183s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_nodes_ports_get_reader [0.114485s] ... 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-73fabdf0-1f14-4a69-b2f6-ce42bd65e5c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff [0.146535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.027024s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.018427s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.018911s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_nodes_ports_detail_get_admin [0.194429s] ... 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-0642af9a-d6f7-4539-bcde-e9801c5dd9d3 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-22T18:25:59.095658+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.025092s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.027645s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.026366s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_nodes_ports_detail_get_member [0.102580s] ... 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-06c41fd9-c999-4abb-bd7e-3168b9496f5b 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-22T18:25:59.269994+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw [0.060730s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw_keeps_md5 [0.060432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.108666s] ... 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-b654518e-1d24-476f-bcf9-f0259c30458a 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-22T18:25:59.361014+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image [0.056603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.078153s] ... 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-543d4484-787c-40b8-b8c3-a95ae164bc59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.075299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.085841s] ... 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-ea59813c-ec77-4a58-a930-7bf1b7c4a227 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 [0.060482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_190_portgroups_ports_get_reader [0.092181s] ... 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-cc4ae102-09df-4c4a-bfea-77c5e3b4cf0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image [0.096048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.078511s] ... 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-57079959-3923-4fec-98e1-62de739014e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_already_raw [0.066019s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.082390s] ... 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-89a43a64-0480-49a8-a0e1-ab8dcc4c47ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo [0.070046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo [0.075405s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.091544s] ... 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-b35af1df-8240-4d20-89d6-9b80113f6e9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_md5_not_permitted [0.061660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_get_admin [0.060733s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a16f1ed-6536-4c31-ad1f-d773271efb7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.070005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_get_member [0.074183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1512f72f-89c9-4bb0-ba41-bdffbd184db0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_image [0.071115s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha256 [0.071667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha512 [0.067400s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_196_volume_get_reader [0.244831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f23a966-7da5-4aa5-9769-3f3f11f9f9c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_image_via_http_verified [0.067795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.039301s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_get_service [0.082653s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad4b27cd-fdeb-4707-85a7-e607875b0d19 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.053097s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.089608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-94836e62-ee4e-438c-864a-000172b2a71a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.075975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_volume_connectors_get_admin [0.072038s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-74119c9e-7c90-4649-91df-0254f6e121a2 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": "2e9f9433-b8cf-4d16-b1bd-42044d96f2f4", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2e9f9433-b8cf-4d16-b1bd-42044d96f2f4", "rel": "self"}, {"href": "http://localhost/volume/connectors/2e9f9433-b8cf-4d16-b1bd-42044d96f2f4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.059069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.054230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_200_volume_connectors_get_member [0.084686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b86a6bbf-553f-4b22-a77e-853bcedaf7dd 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": "42aa7d3d-5fff-4659-86a2-44d1168e7043", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/42aa7d3d-5fff-4659-86a2-44d1168e7043", "rel": "self"}, {"href": "http://localhost/volume/connectors/42aa7d3d-5fff-4659-86a2-44d1168e7043", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.044915s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.054172s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_201_volume_connectors_get_reader [0.083963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c38c750d-38c9-444b-8628-7fde6202e17a 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": "c1a427d1-df4a-495e-b0e7-4d45cd1b26db", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c1a427d1-df4a-495e-b0e7-4d45cd1b26db", "rel": "self"}, {"href": "http://localhost/volume/connectors/c1a427d1-df4a-495e-b0e7-4d45cd1b26db", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.064390s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_202_volume_connectors_get_service [0.081337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fc0822b-497e-40dd-bb6d-721d2bf5edc7 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": "dc180fdf-70cc-43bd-8476-cf5bb500fd08", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/dc180fdf-70cc-43bd-8476-cf5bb500fd08", "rel": "self"}, {"href": "http://localhost/volume/connectors/dc180fdf-70cc-43bd-8476-cf5bb500fd08", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.073895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_203_volume_connectors_get_service_project [0.075339s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e681053-bfc1-4b55-8725-609d68df9a99 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": "d233bb69-259c-40c3-be0f-b05f130a7345", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d233bb69-259c-40c3-be0f-b05f130a7345", "rel": "self"}, {"href": "http://localhost/volume/connectors/d233bb69-259c-40c3-be0f-b05f130a7345", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.069307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_204_volume_connectors_get_service_project_disable [0.068611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c79656e6-f584-4049-aab7-5bbdff752499 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} {0} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.094048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_volume_connectors_post_admin [0.079632s] ... 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/f162ae72-5f3d-4a12-9f3f-bba309635ffc Openstack-Request-Id: req-1e6a2eed-c73a-47dc-8314-d0b6e15b90be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f162ae72-5f3d-4a12-9f3f-bba309635ffc", "created_at": "2025-05-22T18:26:01.029906+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/f162ae72-5f3d-4a12-9f3f-bba309635ffc", "rel": "self"}, {"href": "http://localhost/volume/connectors/f162ae72-5f3d-4a12-9f3f-bba309635ffc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.029637s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_gpt [0.030887s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_volume_connectors_post_member [0.077226s] ... 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/9e4ab980-cf4f-4573-a4d6-dee59a6b885f Openstack-Request-Id: req-ed3f6d98-b534-42a7-b3b0-ebe6fe073403 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9e4ab980-cf4f-4573-a4d6-dee59a6b885f", "created_at": "2025-05-22T18:26:01.107595+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/9e4ab980-cf4f-4573-a4d6-dee59a6b885f", "rel": "self"}, {"href": "http://localhost/volume/connectors/9e4ab980-cf4f-4573-a4d6-dee59a6b885f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_volume_connectors_post_reader [0.090469s] ... 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-82856d09-5b70-48aa-aa45-a38590fc2777 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_volume_connectors_post_service [0.109155s] ... 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/18a69f2a-8ad1-4371-bb30-27600ce511f5 Openstack-Request-Id: req-f3606e79-c5a8-45c4-871c-4b32438e21ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "18a69f2a-8ad1-4371-bb30-27600ce511f5", "created_at": "2025-05-22T18:26:01.298101+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/18a69f2a-8ad1-4371-bb30-27600ce511f5", "rel": "self"}, {"href": "http://localhost/volume/connectors/18a69f2a-8ad1-4371-bb30-27600ce511f5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw [0.289510s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_convert_to_gpt [0.030347s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_volume_connectors_post_service_project [0.108311s] ... 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/bb091696-a05c-4c00-a407-ab10293402fb Openstack-Request-Id: req-abd51f20-e7ec-4409-9f89-4a0f9df6dd2b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bb091696-a05c-4c00-a407-ab10293402fb", "created_at": "2025-05-22T18:26:01.417582+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/bb091696-a05c-4c00-a407-ab10293402fb", "rel": "self"}, {"href": "http://localhost/volume/connectors/bb091696-a05c-4c00-a407-ab10293402fb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_deep_inspection_disabled [0.030047s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_disable_validation [0.029276s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_volume_volume_connector_id_get_admin [0.075655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/f29c70ca-69fa-4607-9c23-e2901defa4eb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b647d70e-fe5b-4f6f-bcd3-f615ea78d077 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f29c70ca-69fa-4607-9c23-e2901defa4eb", "created_at": "2025-05-22T18:26:01.469181+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f29c70ca-69fa-4607-9c23-e2901defa4eb", "rel": "self"}, {"href": "http://localhost/volume/connectors/f29c70ca-69fa-4607-9c23-e2901defa4eb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback [0.039646s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_format_does_not_match_glance [0.042952s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_not_safe_image [0.032591s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_volume_volume_connector_id_get_member [0.099401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/81266eeb-b5da-43f4-8800-6de788355eb4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06a000fc-dd5f-41fa-a56f-cfb883e9de60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "81266eeb-b5da-43f4-8800-6de788355eb4", "created_at": "2025-05-22T18:26:01.566994+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/81266eeb-b5da-43f4-8800-6de788355eb4", "rel": "self"}, {"href": "http://localhost/volume/connectors/81266eeb-b5da-43f4-8800-6de788355eb4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_part_already_exists [0.057210s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_volume_volume_connector_id_get_reader [0.073645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/3691a2c4-35de-45bf-b3d4-76288ebdbd7d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e81ce6d6-94e2-4108-82cd-5d1e159d8aae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3691a2c4-35de-45bf-b3d4-76288ebdbd7d", "created_at": "2025-05-22T18:26:01.644739+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3691a2c4-35de-45bf-b3d4-76288ebdbd7d", "rel": "self"}, {"href": "http://localhost/volume/connectors/3691a2c4-35de-45bf-b3d4-76288ebdbd7d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_image [0.035024s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_kernel [0.030311s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_with_image_auth [0.029675s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_volume_volume_connector_id_patch_admin [0.086743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/ddc1ae94-698d-4d27-a772-6e5da00d5315 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a658b6f0-970b-4c81-bd07-0d64b38ccd10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.028877s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.029906s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.031530s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.025756s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_volume_volume_connector_id_patch_member [0.127861s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/c64056f9-5f39-49a7-a224-4fb4bbfa9f55 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2870c58a-eb85-4bc2-83f3-316ab88d8bf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.044712s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_volume_volume_connector_id_patch_reader [0.079280s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/46af2099-1916-45e8-8557-ff4739567160 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-01262766-d3a8-444f-9fcd-ecc7c833b8ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.057622s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.036498s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.024195s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_volume_volume_connector_id_patch_service [0.114250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/12fabb41-8105-4c93-9a3b-d9844d67ca8d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d20d9d7b-abb9-4459-a818-6a354b49c2be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.042896s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.035275s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img [0.026983s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_volume_volume_connector_id_delete_admin [0.082823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/fb52a67c-0708-448a-9a3c-54b7c5833a23 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0bad4952-719e-4b8f-b88e-c528bbba29a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img_not_cached [0.022630s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.040880s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config [0.036077s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_volume_volume_connector_id_delete_member [0.095459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/43c4f96f-240c-4ac1-9ad0-cfc5a2f1af43 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b2dfc638-6fa2-4ef3-894c-ea92109a0385 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_redfish_kernel_param_config [0.042111s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_as_url_ignored [0.032927s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_volume_volume_connector_id_delete_reader [0.078352s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/88073e40-b1c2-4992-8884-5cc1ddd33fcf GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bd6a6a4c-ac2d-4f4e-b32e-401e9fc8e2ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_ignored [0.031108s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip [0.027177s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_volume_volume_connector_id_delete_service [0.065363s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/a283a4ce-ec49-49ac-a408-68d457e73b82 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-12fd8b6b-ba02-41b1-acb2-aec28da40afc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip_as_url [0.025176s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ipv6_as_url [0.028237s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_redfish_bmc_address_ipv6_brackets_no_scheme [0.028106s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_volume_targets_get_admin [0.089685s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4d21362-6f57-4c46-919b-30c083cc769d 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": "ebf71321-94db-444d-b81c-248e84ed987b", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/ebf71321-94db-444d-b81c-248e84ed987b", "rel": "self"}, {"href": "http://localhost/volume/targets/ebf71321-94db-444d-b81c-248e84ed987b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host [0.024851s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host_in_url [0.026356s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_volume_targets_get_member [0.088032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a73df7ea-c5f4-408b-b61d-95b5580af4c3 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": "797cc326-f455-4fa3-b793-7ebfc904fe12", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/797cc326-f455-4fa3-b793-7ebfc904fe12", "rel": "self"}, {"href": "http://localhost/volume/targets/797cc326-f455-4fa3-b793-7ebfc904fe12", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.084099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.108567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f8b1dcd-c3c5-4d2a-a0de-b37c46dd2cf0 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": "5cd84367-640e-414a-acc5-030506962c32", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5cd84367-640e-414a-acc5-030506962c32", "rel": "self"}, {"href": "http://localhost/volume/targets/5cd84367-640e-414a-acc5-030506962c32", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.083761s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.043301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_224_volume_targets_get_service [0.084666s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-22fd5694-fa51-413e-ab75-7094e5a17041 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": "8dd1960d-f9b8-4b01-8f85-3fa88be1bdce", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8dd1960d-f9b8-4b01-8f85-3fa88be1bdce", "rel": "self"}, {"href": "http://localhost/volume/targets/8dd1960d-f9b8-4b01-8f85-3fa88be1bdce", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift [0.036428s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift_exception [0.035015s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__store_inspection_data_in_swift [0.034344s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_volume_targets_post_admin [0.098996s] ... 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/47400e5d-4170-4d34-bb55-c32052d6afd7 Openstack-Request-Id: req-8e4ea615-9641-41f2-8de1-a8f80fb5a9f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "47400e5d-4170-4d34-bb55-c32052d6afd7", "created_at": "2025-05-22T18:26:02.872256+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/47400e5d-4170-4d34-bb55-c32052d6afd7", "rel": "self"}, {"href": "http://localhost/volume/targets/47400e5d-4170-4d34-bb55-c32052d6afd7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db [0.041127s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db_exception [0.030787s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_nostore [0.036837s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_volume_targets_post_member [0.091433s] ... 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/82af850f-9f50-412f-9319-a5cd0ec6a337 Openstack-Request-Id: req-8489a1dc-c33a-4f0a-93c0-55785aaa6003 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "82af850f-9f50-412f-9319-a5cd0ec6a337", "created_at": "2025-05-22T18:26:02.967082+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/82af850f-9f50-412f-9319-a5cd0ec6a337", "rel": "self"}, {"href": "http://localhost/volume/targets/82af850f-9f50-412f-9319-a5cd0ec6a337", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift [0.040184s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift_exception [0.037166s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_volume_targets_post_service [0.090702s] ... 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/fd253727-0cb8-4932-aaac-da36a3696c09 Openstack-Request-Id: req-65928284-2595-4f51-bcf9-d12f11d5b557 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fd253727-0cb8-4932-aaac-da36a3696c09", "created_at": "2025-05-22T18:26:03.058358+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/fd253727-0cb8-4932-aaac-da36a3696c09", "rel": "self"}, {"href": "http://localhost/volume/targets/fd253727-0cb8-4932-aaac-da36a3696c09", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_db [0.032270s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_nostore [0.032043s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_swift [0.040666s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_no_on_error [0.030630s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_volume_targets_post_service_project [0.117429s] ... 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/70e369eb-1bfc-4881-abc6-b6368e8d9153 Openstack-Request-Id: req-efcc263c-252a-42b0-8b51-6df86dca397f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "70e369eb-1bfc-4881-abc6-b6368e8d9153", "created_at": "2025-05-22T18:26:03.176320+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/70e369eb-1bfc-4881-abc6-b6368e8d9153", "rel": "self"}, {"href": "http://localhost/volume/targets/70e369eb-1bfc-4881-abc6-b6368e8d9153", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_post_hook_on_error_callback [0.032602s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_pre_hook_on_error_callback [0.040515s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_volume_targets_post_service_project_disabled [0.100172s] ... 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-42bb829d-1f5c-4c81-a0e8-ccd5163ad22a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls [0.032325s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.023498s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.024346s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.022674s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_volume_targets_post_service_project_admin [0.086352s] ... 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-84971411-b9de-43da-96a3-4d2859627e3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.026164s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.030395s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.028592s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_volume_targets_post_reader [0.086564s] ... 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-57da8a12-afdb-41dc-8825-23fa5fb0c8e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.025081s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.024007s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.026723s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_volume_volume_target_id_get_admin [0.084981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/4dec4e79-5b67-44fe-9445-8b7ea1895e98 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-234e1c0a-af86-47bc-aefd-73c7a0ca6177 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4dec4e79-5b67-44fe-9445-8b7ea1895e98", "created_at": "2025-05-22T18:26:03.504247+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/4dec4e79-5b67-44fe-9445-8b7ea1895e98", "rel": "self"}, {"href": "http://localhost/volume/targets/4dec4e79-5b67-44fe-9445-8b7ea1895e98", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.034417s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_volume_volume_target_id_get_member [0.306365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/a620ffac-83ac-4334-9013-94645af3f321 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-50d342a8-d62c-4a28-a0dd-cea09865b70c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a620ffac-83ac-4334-9013-94645af3f321", "created_at": "2025-05-22T18:26:03.811642+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/a620ffac-83ac-4334-9013-94645af3f321", "rel": "self"}, {"href": "http://localhost/volume/targets/a620ffac-83ac-4334-9013-94645af3f321", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_volume_volume_target_id_get_reader [0.074720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/eab18f2b-8a23-49a7-9332-356804e9156d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-677eaac1-459e-487c-9f38-2e00e193c0d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "eab18f2b-8a23-49a7-9332-356804e9156d", "created_at": "2025-05-22T18:26:03.894376+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/eab18f2b-8a23-49a7-9332-356804e9156d", "rel": "self"}, {"href": "http://localhost/volume/targets/eab18f2b-8a23-49a7-9332-356804e9156d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.416318s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.023656s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_volume_volume_target_id_get_service [0.086219s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/3f80e71f-e7d4-4211-a5d8-e37fbec0ee6a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93957849-4c52-42a4-aa56-c195d46d25ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3f80e71f-e7d4-4211-a5d8-e37fbec0ee6a", "created_at": "2025-05-22T18:26:03.976128+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/3f80e71f-e7d4-4211-a5d8-e37fbec0ee6a", "rel": "self"}, {"href": "http://localhost/volume/targets/3f80e71f-e7d4-4211-a5d8-e37fbec0ee6a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.022743s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.024347s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.037410s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_volume_volume_target_id_patch_admin_extra [0.100598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/35dde96e-b7ec-48cc-894f-b5845584ae6f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0d62613f-65a3-4c80-a99f-ac8426ccf86a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.041176s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.039889s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.034529s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_volume_volume_target_id_patch_admin [0.110475s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/23f1a379-21d7-40be-91b5-33dfc77fa7ca WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1f33cf51-475a-451a-bff3-9fdd68fae12d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.031759s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.029098s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.031291s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_volume_volume_target_id_patch_reader [0.083730s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/31221a73-c033-4975-b65a-bf556d7b5625 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7fec1b6e-825e-4d2f-97d4-e6042721f79c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.038929s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.037769s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_volume_volume_target_id_patch_service_disabled [0.082814s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/5759c86f-1b29-4635-8f3a-6fccf1059343 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b35f2ced-80fc-4742-884e-441878553b3f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.029915s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port [0.052755s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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 [0.093236s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/2bad689c-0ceb-4da0-bd9b-cf164ec121b8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5d453871-dfbb-4688-94b5-d1ede7cd6e12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.048973s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail [0.068355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_241_volume_volume_target_id_delete_admin [0.091564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/b4295134-7110-4986-bb6d-861635403481 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-74d3d791-3b7a-49fe-bff5-95bb86756eab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_242_volume_volume_target_id_delete_member [0.073605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/defea3e4-1c54-490a-bb44-6a2df14a8914 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7de2cf60-9042-4e04-8ebb-6018fc2400ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok [0.095965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.029319s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_volume_volume_target_id_delete_reader [0.080084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/5e99d3a3-9ffd-4b08-a5fa-9cd226f62dcf GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5b9a03de-bc3b-49a0-9e8a-5c347e98bd47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.033427s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.029580s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.037126s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_volume_volume_target_id_delete_service [0.155811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/218e0ad2-0aa2-46bd-856f-343201d18419 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-85a5548f-68da-402e-a6ee-ea40aa1ec2e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port [0.111711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_245_nodes_volume_get_admin [0.081075s] ... 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-e91fea14-0da2-4e37-bd55-ee68e92cfa00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor [0.052672s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail [0.060126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_nodes_volume_get_member [0.077059s] ... 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-7070914c-79f9-4b5e-be19-7f4d5a289581 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok [0.055019s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_nodes_volume_get_reader [0.074345s] ... 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-89614339-5a39-4829-bdf4-69af4c73e30e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.055478s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.058698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.087038s] ... 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-dba190f0-3555-4521-aa0e-5d6e425471ca 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": "6559bb81-9857-4ee6-814e-9c6e77cbcaf2", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6559bb81-9857-4ee6-814e-9c6e77cbcaf2", "rel": "self"}, {"href": "http://localhost/volume/connectors/6559bb81-9857-4ee6-814e-9c6e77cbcaf2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.047547s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.079086s] ... 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-bf55ba10-f907-4cd1-bf54-0527df1ae28f 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": "c7748b8d-c0c6-41bb-a1d8-9c3fcac6c2d8", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c7748b8d-c0c6-41bb-a1d8-9c3fcac6c2d8", "rel": "self"}, {"href": "http://localhost/volume/connectors/c7748b8d-c0c6-41bb-a1d8-9c3fcac6c2d8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.044574s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios [0.061548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.073691s] ... 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-6476425a-c2c1-4d56-889c-37da8ee2f26e 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": "19f7fdf5-bfbe-4aad-b75f-3c44ee5ce657", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/19f7fdf5-bfbe-4aad-b75f-3c44ee5ce657", "rel": "self"}, {"href": "http://localhost/volume/connectors/19f7fdf5-bfbe-4aad-b75f-3c44ee5ce657", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.043366s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.048605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.100199s] ... 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-858574e6-c169-4757-9593-3e117d624fd4 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": "5f5df9c8-24a1-4b2e-85d9-d3fd7c7cf058", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5f5df9c8-24a1-4b2e-85d9-d3fd7c7cf058", "rel": "self"}, {"href": "http://localhost/volume/targets/5f5df9c8-24a1-4b2e-85d9-d3fd7c7cf058", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.047062s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.045070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_nodes_volume_targets_get_member [0.101465s] ... 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-32592bb9-d202-4506-9484-fd82088731de 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": "731f6c9f-c8c7-462a-aba9-ef401e91c5b4", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/731f6c9f-c8c7-462a-aba9-ef401e91c5b4", "rel": "self"}, {"href": "http://localhost/volume/targets/731f6c9f-c8c7-462a-aba9-ef401e91c5b4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.079769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_nodes_volume_targets_get_reader [0.096024s] ... 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-3b7da174-8bc2-4cd7-89af-3ed86066776d 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": "143951f5-dbd2-4628-8950-335009b47b24", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/143951f5-dbd2-4628-8950-335009b47b24", "rel": "self"}, {"href": "http://localhost/volume/targets/143951f5-dbd2-4628-8950-335009b47b24", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.082454s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_drivers_get_admin [0.104262s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5113ecab-e777-436d-9708-32efecfda21f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.084742s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_drivers_get_member [0.087874s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-295d186e-520b-4d27-8204-f7d5001b6aff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios [0.068734s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_drivers_get_reader [0.074179s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9a11de2-7824-4ad5-a6b9-c1566a929b7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.058371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.066192s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.093061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-27d9fbea-212f-4e18-8de7-f5fa83cfb684 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios [0.045996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_258_drivers_driver_name_get_member [0.068654s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1311c3d5-3147-4630-aa14-b86287947417 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios [0.049645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.049383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_259_drivers_driver_name_get_reader [0.074370s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e189167a-0fc3-4aa5-9f81-53fb7b6e7dfc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci [0.051211s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_260_drivers_properties_get_admin [0.072635s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6682c9bc-ba93-470c-bf7a-c0c20f1c9f53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.101640s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_261_drivers_properties_get_member [0.082696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-67768685-7c35-4eef-bc04-a8ff84d6da01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_drivers_properties_get_reader [0.083999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a7e4eb7e-3441-4a64-b8cd-ddb8e5d932a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci [0.116208s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_263_drivers_raid_logical_disk_properties_get_admin [0.085124s] ... 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-57e2023b-cbad-42e5-8ffd-776d1f677dd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.076437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_drivers_raid_logical_disk_properties_get_member [0.089619s] ... 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-f16917c9-083e-4c2d-96b0-eecf5726bb48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios [0.110102s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.084951s] ... 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-86f99fee-5116-4909-9d21-56e2008fe3aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi [0.100981s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_drivers_vendor_passthru_methods_get_admin [0.072480s] ... 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-28cd9ca1-216a-4c8f-92cf-01dcff0f0cac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios [0.077970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_267_drivers_vendor_passthru_methods_get_member [0.083274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ce1006f2-97c2-4b00-a2af-daa83dd524fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi [0.068216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_drivers_vendor_passthru_methods_get_reader [0.083240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1ca5d0e7-6431-4e97-96cd-6ac44a522a1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.102942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_269_drivers_vendor_passthru_get_admin [0.111008s] ... 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-b3c57f18-9c2e-4f87-b944-fc79083f6b11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.097190s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.079229s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_drivers_vendor_passthru_get_member [0.128574s] ... 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-2b392bd7-7afd-4bd0-8b4e-1eed373da5cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.098171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_disable_power_off [0.113145s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.113477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_271_drivers_vendor_passthru_get_reader [0.355637s] ... 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-d96dfcc9-788d-4147-82af-b06cae27bab3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.068632s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_272_drivers_vendor_passthru_post_admin [0.090883s] ... 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-d84d6c1c-1bac-44d4-b622-796018831f1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.061748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_drivers_vendor_passthru_post_member [0.110837s] ... 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-2bef4ddb-1cf9-4240-8d18-66780987bced X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_drivers_vendor_passthru_post_reader [0.129593s] ... 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-fbe7538c-c5c3-4e48-861c-2649a56b8c6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.257290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_275_drivers_vendor_passthru_put_admin [0.067568s] ... 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-3df494f0-0428-4abd-bb1b-e73f2eb08c24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.051438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.063228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_276_drivers_vendor_passthru_put_member [0.081000s] ... 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-fedcec2c-33c5-4e53-9de8-a24f80a418a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_from_clean_step [0.063172s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_is_in_step_list [0.042631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_277_drivers_vendor_passthru_put_reader [0.097623s] ... 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-c7a34a48-2fc8-4f89-90c3-eb995ccc5428 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.057987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.107426s] ... 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-26cd49b6-87dd-4176-b55f-39601cf72e9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns [0.058117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state [0.041437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.079832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6a14edb8-2553-45a4-acd9-5a107a37eba8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok [0.056994s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok [0.057038s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.051337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.043451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.190488s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f861a794-01c8-4339-b583-5f922f959b9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.042056s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.046980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_nodes_bios_get_admin [0.103081s] ... 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-037494a6-c23d-45c5-84e9-99d181c54c2c 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-22T18:26:08.560176+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.047147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.049375s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_nodes_bios_get_member [0.099242s] ... 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-416b5e9d-0dfa-4e69-a899-213e90ff4131 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-22T18:26:08.651817+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok [0.073237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_283_nodes_bios_get_reader [0.088606s] ... 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-6a6e31ed-3a71-4a1f-81f2-7986d9e2d451 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-22T18:26:08.754064+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.051027s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.053803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.082654s] ... 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-11f3f55c-ae74-4e7d-b2ad-48e68414fb09 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-22T18:26:08.842254+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.047580s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.049618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.157574s] ... 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-a642535b-bc25-47e5-9b03-5649bc80da6f 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-22T18:26:08.976324+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold [0.096624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.102041s] ... 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-290abfcc-77d9-4379-b261-3663f8bb86cd 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-22T18:26:09.106341+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.095750s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.061324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_conductors_get_admin [0.077380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48ce96e5-d8e3-4fe7-a98c-a1b65084e1e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes_with_http_method [0.053143s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes [0.039574s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_conductors_get_member [0.108563s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12025eaa-52d8-403d-9526-95525ddef307 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.040422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.050357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.081634s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2acdd0dc-3536-4f7c-a93b-79a9b8d41bd8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [0.115272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.155819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8679e5e-4717-46ba-ad70-4ccf9726f3a0 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-22T18:26:09.499260+00:00", "updated_at": "2025-05-22T18:26:09.500118+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.059970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.058583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.090069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51c70a81-5fb4-4f52-8918-c00a10428b73 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-22T18:26:09.613599+00:00", "updated_at": "2025-05-22T18:26:09.614244+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.049807s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes [0.035910s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_conductors_hostname_get_reader [0.072237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dacc8063-6ddc-45ad-966a-d152bdd6292f 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-22T18:26:09.706944+00:00", "updated_at": "2025-05-22T18:26:09.707586+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {0} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_http_boot_enabled [0.037423s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_allocations_post_admin [0.086750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-587b044a-ac4e-4b57-8321-ccb57358c25b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk [0.076323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.079573s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8069fbc3-b31f-4d28-a32e-07960479d3ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_rescue [0.085286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.071448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8d9a7a4d-8e81-4d37-8a4a-1daee276dd1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_uefi [0.074616s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references [0.024118s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_allocations_get_admin [0.072591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f845984c-8313-4203-8e2d-9164dc6bd35e 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": "29d91479-84fc-46d3-8da9-654c6da608f5", "created_at": "2025-05-22T18:26:10.002714+00:00", "updated_at": "2025-05-22T18:26:10.006995+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/29d91479-84fc-46d3-8da9-654c6da608f5", "rel": "self"}, {"href": "http://localhost/allocations/29d91479-84fc-46d3-8da9-654c6da608f5", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.026674s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception [0.031474s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.020507s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_allocations_get_member [0.081738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba2b14fe-2097-4673-8c8d-23a64ae3d711 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": "fba11ffc-6909-4403-8c01-bf9d6a1fedd6", "created_at": "2025-05-22T18:26:10.082535+00:00", "updated_at": "2025-05-22T18:26:10.090258+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/fba11ffc-6909-4403-8c01-bf9d6a1fedd6", "rel": "self"}, {"href": "http://localhost/allocations/fba11ffc-6909-4403-8c01-bf9d6a1fedd6", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.026857s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.034634s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.034489s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_allocations_get_reader [0.083786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1982df4-9e60-47ba-bfdf-759a1a1f238e 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": "d500b535-59c5-4e70-8b28-e8cb2720f4f0", "created_at": "2025-05-22T18:26:10.160727+00:00", "updated_at": "2025-05-22T18:26:10.164787+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/d500b535-59c5-4e70-8b28-e8cb2720f4f0", "rel": "self"}, {"href": "http://localhost/allocations/d500b535-59c5-4e70-8b28-e8cb2720f4f0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.042709s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_299_allocations_allocation_id_get_admin [0.067681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/0cb68308-0a6c-4ad8-be66-c44d58b9ff37 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-67ebde7f-6d52-4fdd-ac3f-0b5153b4002b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0cb68308-0a6c-4ad8-be66-c44d58b9ff37", "created_at": "2025-05-22T18:26:10.240079+00:00", "updated_at": "2025-05-22T18:26:10.244117+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/0cb68308-0a6c-4ad8-be66-c44d58b9ff37", "rel": "self"}, {"href": "http://localhost/allocations/0cb68308-0a6c-4ad8-be66-c44d58b9ff37", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface [0.063829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.038864s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.075092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/d90ce3c0-d3df-4996-898e-1ae8bf41e0f5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f48e5ef8-c493-4de4-a70b-6eaba5f85b3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d90ce3c0-d3df-4996-898e-1ae8bf41e0f5", "created_at": "2025-05-22T18:26:10.307980+00:00", "updated_at": "2025-05-22T18:26:10.312925+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/d90ce3c0-d3df-4996-898e-1ae8bf41e0f5", "rel": "self"}, {"href": "http://localhost/allocations/d90ce3c0-d3df-4996-898e-1ae8bf41e0f5", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.040460s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.069559s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/08f09c0f-75e0-4e19-b233-d0454192e379 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d959bf3-e3af-4206-a0ed-9eb5fe7082a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "08f09c0f-75e0-4e19-b233-d0454192e379", "created_at": "2025-05-22T18:26:10.384479+00:00", "updated_at": "2025-05-22T18:26:10.388630+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/08f09c0f-75e0-4e19-b233-d0454192e379", "rel": "self"}, {"href": "http://localhost/allocations/08f09c0f-75e0-4e19-b233-d0454192e379", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_allocations_allocation_id_patch_admin [0.084135s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/f2bc27c2-7474-4f20-8574-8d3627cb66a4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4559b6e4-ff4c-452c-a214-414cd574fe03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f2bc27c2-7474-4f20-8574-8d3627cb66a4", "created_at": "2025-05-22T18:26:10.454809+00:00", "updated_at": "2025-05-22T18:26:10.503096+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/f2bc27c2-7474-4f20-8574-8d3627cb66a4", "rel": "self"}, {"href": "http://localhost/allocations/f2bc27c2-7474-4f20-8574-8d3627cb66a4", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_allocations_allocation_id_patch_member [0.108534s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/bb1495e5-ab14-4d5e-8d54-8db99c670023 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58c02dc6-f998-4a41-a210-abad52ae0f5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bb1495e5-ab14-4d5e-8d54-8db99c670023", "created_at": "2025-05-22T18:26:10.546056+00:00", "updated_at": "2025-05-22T18:26:10.605939+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/bb1495e5-ab14-4d5e-8d54-8db99c670023", "rel": "self"}, {"href": "http://localhost/allocations/bb1495e5-ab14-4d5e-8d54-8db99c670023", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties [0.311283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.118361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/3b7a7774-9a17-42b9-aa43-4cd093d7911a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f858d4b2-5160-4df2-af16-c104c0cc67e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.046646s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.039262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.052978s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_305_allocations_allocation_id_delete_admin [0.111495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/c351ad8a-3f66-4626-95ae-dfc9654a61b2 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-668c350c-9901-49aa-b77b-383f52a39447 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.078665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_306_allocations_allocation_id_delete_member [0.076454s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/333d3218-dae5-44a6-bd17-382a97d556ed GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-31eed598-a04c-4065-a98d-961a1e7f9cb8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.061962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.057646s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.054081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.044446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.060732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.046643s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.344533s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/2a3e0bce-3e21-456e-8dff-005ab7e6c1ed GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-666b7642-1605-4788-8dfe-72bcbb7a8f7a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.045878s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.067703s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_308_nodes_allocation_get_admin [0.100158s] ... 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-5710ae38-f8c0-4764-9c4b-f157be9fb426 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2472e8b1-67e6-4d7f-9cb0-a53434999605", "created_at": "2025-05-22T18:26:11.306604+00:00", "updated_at": "2025-05-22T18:26:11.311119+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/2472e8b1-67e6-4d7f-9cb0-a53434999605", "rel": "self"}, {"href": "http://localhost/allocations/2472e8b1-67e6-4d7f-9cb0-a53434999605", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface [0.042846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_309_nodes_allocation_get_member [0.081292s] ... 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-fbfbf021-2a0c-481c-b3fc-581f5c469b10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ab03a710-7152-4b3c-9c3e-cf960b3fbc8f", "created_at": "2025-05-22T18:26:11.407746+00:00", "updated_at": "2025-05-22T18:26:11.413649+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/ab03a710-7152-4b3c-9c3e-cf960b3fbc8f", "rel": "self"}, {"href": "http://localhost/allocations/ab03a710-7152-4b3c-9c3e-cf960b3fbc8f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_one [0.046452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.056222s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_310_nodes_allocation_get_reader [0.084788s] ... 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-936c7166-4014-4f76-be77-ca521f096fdb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e9c12b8c-0163-4a45-9526-568b8bd1e8e2", "created_at": "2025-05-22T18:26:11.485948+00:00", "updated_at": "2025-05-22T18:26:11.490372+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/e9c12b8c-0163-4a45-9526-568b8bd1e8e2", "rel": "self"}, {"href": "http://localhost/allocations/e9c12b8c-0163-4a45-9526-568b8bd1e8e2", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_zero [0.053504s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_311_nodes_allocation_delete_admin [0.077182s] ... 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-251206ca-70b7-474b-86a3-cfbd7c698b3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.062409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties [0.035482s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_312_nodes_allocation_delete_member [0.076748s] ... 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-bb6e8c79-14dc-44b8-98d8-91708a985926 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.030430s] ... ok {0} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.042396s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces [0.053444s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_313_nodes_allocation_delete_reader [0.106737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-138d627d-4bf3-45cb-b76f-36639b2b69c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.065138s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.100057s] ... 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/731f87a2-aa81-424a-9916-3a4a6a1c830d Openstack-Request-Id: req-0e57e6ad-66c6-4af1-b7b8-57635e6fee79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "731f87a2-aa81-424a-9916-3a4a6a1c830d", "created_at": "2025-05-22T18:26:11.899992+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/731f87a2-aa81-424a-9916-3a4a6a1c830d", "rel": "self"}, {"href": "http://localhost/deploy_templates/731f87a2-aa81-424a-9916-3a4a6a1c830d", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.045910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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_315_deploy_templates_post_member [0.094251s] ... 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-5df9f94c-91c9-4b76-ad0c-714f02b718de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.098035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.043184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.049736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.045483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.151383s] ... 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-24cf53be-9ffa-47b6-954c-01aa135c93ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces [0.041307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.034394s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_317_deploy_templates_get_admin [0.103180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-712b3fc0-62a1-4b0b-a628-4cf4984f5da5 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": "9cdeae88-9114-43e5-9d73-2b3e9b2347c2", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/9cdeae88-9114-43e5-9d73-2b3e9b2347c2", "rel": "self"}, {"href": "http://localhost/deploy_templates/9cdeae88-9114-43e5-9d73-2b3e9b2347c2", "rel": "bookmark"}]}]} {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.042645s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.023408s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.028327s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_318_deploy_templates_get_member [0.069198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0aa3f6b3-fd6c-4a16-a425-18b9b699d0cb 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": "842e819f-333d-4f04-8830-5f69689e3244", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/842e819f-333d-4f04-8830-5f69689e3244", "rel": "self"}, {"href": "http://localhost/deploy_templates/842e819f-333d-4f04-8830-5f69689e3244", "rel": "bookmark"}]}]} {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.027044s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.023043s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.022686s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_319_deploy_templates_get_reader [0.067977s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-831c7633-f4e3-4c7f-b43f-7287449dcd2d 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": "c386ea2b-3464-4fb8-90c7-2d4bacc368e4", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/c386ea2b-3464-4fb8-90c7-2d4bacc368e4", "rel": "self"}, {"href": "http://localhost/deploy_templates/c386ea2b-3464-4fb8-90c7-2d4bacc368e4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.043130s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.030338s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_320_deploy_templates_deploy_template_id_get_admin [0.088209s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/cce79a9b-29a4-48bb-9211-79b9dfad04ce WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5566b09b-0341-4eb7-b00c-9820ab31555b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "cce79a9b-29a4-48bb-9211-79b9dfad04ce", "created_at": "2025-05-22T18:26:12.452482+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/cce79a9b-29a4-48bb-9211-79b9dfad04ce", "rel": "self"}, {"href": "http://localhost/deploy_templates/cce79a9b-29a4-48bb-9211-79b9dfad04ce", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.040630s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create [0.030915s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_321_deploy_templates_deploy_template_id_get_member [0.068291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/d57762df-d468-4a64-bfcf-1c63b5206413 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd1af17b-6e9c-42e5-a554-2383c500e6cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d57762df-d468-4a64-bfcf-1c63b5206413", "created_at": "2025-05-22T18:26:12.520428+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d57762df-d468-4a64-bfcf-1c63b5206413", "rel": "self"}, {"href": "http://localhost/deploy_templates/d57762df-d468-4a64-bfcf-1c63b5206413", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.038209s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.029628s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.028391s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_322_deploy_templates_deploy_template_id_get_reader [0.082936s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/48f6e9f5-f1a5-4ec7-a105-bf39f6be643a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ff23e6a-3549-4a75-b215-45f2fdeee9d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "48f6e9f5-f1a5-4ec7-a105-bf39f6be643a", "created_at": "2025-05-22T18:26:12.605208+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/48f6e9f5-f1a5-4ec7-a105-bf39f6be643a", "rel": "self"}, {"href": "http://localhost/deploy_templates/48f6e9f5-f1a5-4ec7-a105-bf39f6be643a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.028565s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.027878s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.026259s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_323_deploy_templates_deploy_template_id_patch_admin [0.089783s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/c72d26ce-9f8c-4593-b395-a6e135ef95bc WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f30ef5a9-7be7-4fd1-b59a-3df02b470f0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c72d26ce-9f8c-4593-b395-a6e135ef95bc", "created_at": "2025-05-22T18:26:12.675390+00:00", "updated_at": "2025-05-22T18:26:12.718542+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c72d26ce-9f8c-4593-b395-a6e135ef95bc", "rel": "self"}, {"href": "http://localhost/deploy_templates/c72d26ce-9f8c-4593-b395-a6e135ef95bc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.028048s] ... ok {0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.031521s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_324_deploy_templates_deploy_template_id_patch_member [0.066593s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/4615a7a6-c213-4f2e-bb3e-7f1b56ff9ca5 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-78fec139-8d4f-4e3e-a42e-b04aa5ebf26c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.041938s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.027790s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_325_deploy_templates_deploy_template_id_patch_reader [0.068982s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/6c03756d-2d8a-4486-9859-3409b64fe700 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-022b58e0-dbe6-4e2f-8dbe-795a5ffceae7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.objects.test_node.TestNodeObject.test_as_dict_insecure [0.025034s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.024167s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict [0.026412s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_326_deploy_templates_deploy_template_id_delete_admin [0.069482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/4381ab85-19ca-4e94-b948-5676ebf38cc1 GOT Response: 204 No Content Openstack-Request-Id: req-31e9cb4f-49e3-46b5-aa46-a47cd84f674b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive [0.041804s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict [0.026281s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_327_deploy_templates_deploy_template_id_delete_member [0.066281s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/739e2a29-1228-4196-a0f2-e738739d7517 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ab3592af-f118-4617-96b4-b28fb69841c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.027168s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.032728s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_328_deploy_templates_deploy_template_id_delete_reader [0.071279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/39588238-318f-490f-ac77-c2b80af0ade2 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b6a1c52a-9a81-4c11-9b90-a281ebf9c5d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.030532s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.027405s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.023224s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_329_chassis_post_admin [0.079558s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/2a35f24e-21af-4d68-9d2f-5bc0a975b130 Openstack-Request-Id: req-6699263e-0d70-402f-848e-240de27f547f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2a35f24e-21af-4d68-9d2f-5bc0a975b130", "created_at": "2025-05-22T18:26:13.146385+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/2a35f24e-21af-4d68-9d2f-5bc0a975b130", "rel": "self"}, {"href": "http://localhost/chassis/2a35f24e-21af-4d68-9d2f-5bc0a975b130", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/2a35f24e-21af-4d68-9d2f-5bc0a975b130/nodes", "rel": "self"}, {"href": "http://localhost/chassis/2a35f24e-21af-4d68-9d2f-5bc0a975b130/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.030491s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.024256s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_330_chassis_post_member [0.065428s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-792c4549-e933-4267-883b-ad53e5cde8f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.028187s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.024581s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.032692s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_331_chassis_post_reader [0.072932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8994fc57-ca8d-4419-9d30-b42fef9f8726 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.026105s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.023772s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface [0.023908s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_332_chassis_get_admin [0.067773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-184fe48e-8c7f-4126-8c42-778be2910d93 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.objects.test_node.TestNodeObject.test_get_interface_overriden [0.044689s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.027246s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_333_chassis_get_member [0.068496s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a560c82b-600c-4b94-810e-c4b37143bde5 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.objects.test_node.TestNodeObject.test_list_with_fields [0.026714s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present [0.028130s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_334_chassis_get_reader [0.062077s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3764a5c0-2e86-47cf-a035-8ef13e6d958f 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.objects.test_node.TestNodeObject.test_list_with_fields_traits [0.030692s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.046010s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_335_chassis_get_service [0.083549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed6c3f27-668c-437c-9dfd-2f1b64bf6f2e 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.objects.test_node.TestNodeObject.test_refresh [0.034199s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.026800s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_336_chassis_detail_get_admin [0.099130s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4de3de00-aef8-4e34-a15b-95f2eeec2f58 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-22T18:26:13.639880+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_337_chassis_detail_get_member [0.082182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a565d2c-2225-4ce3-9d1d-72e8dff6557f 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-22T18:26:13.729062+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_338_chassis_detail_get_reader [0.062420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-45e4a1b1-ab05-4188-b905-fc22c96e9538 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-22T18:26:13.792202+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.213605s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.035757s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.023562s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.023970s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_339_chassis_chassis_id_get_admin [0.100354s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6935cccb-2c74-45e7-a13b-bafea93a1eec 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-22T18:26:13.891360+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.043804s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_340_chassis_chassis_id_get_member [0.067076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a60dd269-4ccc-464a-beae-4ce74be2d295 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-22T18:26:13.959580+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.032226s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.025124s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.025407s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_341_chassis_chassis_id_get_reader [0.069471s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dcd4a1fa-68b4-4fd5-803d-4037919c8f21 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-22T18:26:14.028255+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.026142s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.024649s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.025569s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_342_chassis_chassis_id_patch_admin [0.081064s] ... 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-547b5206-03aa-4a54-8c3f-406290f2c484 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-22T18:26:14.094715+00:00", "updated_at": "2025-05-22T18:26:14.134848+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.030647s] ... ok {0} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.023428s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.023893s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_343_chassis_chassis_id_patch_member [0.070152s] ... 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-974cdfa9-42fd-48ed-906e-5e69a39e456c 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-22T18:26:14.174081+00:00", "updated_at": "2025-05-22T18:26:14.205772+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.033323s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.033318s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.023639s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write [0.026001s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_custom_ioerror [0.024658s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block [0.025591s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block_too_many_times [0.024375s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_344_chassis_chassis_id_patch_reader [0.237592s] ... 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-afc50146-f035-4db4-835c-aeeaccf4ae50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_345_chassis_chassis_id_delete_admin [0.077176s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-62ff8179-6e0f-49a8-8d28-6fbf8cf619e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_346_chassis_chassis_id_delete_member [0.067832s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1970b856-d89c-4099-be6e-c3c16944eb36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_347_chassis_chassis_id_delete_reader [0.074418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d264004b-00f8-4d7d-bccc-643fe4b68f10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_348_chassis_chassis_id_delete_service [0.060643s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2124d5d8-d4b4-4b87-ac90-63bad14d4959 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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_349_node_history_get_admin [0.079881s] ... 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-8bf79cb8-3ecf-48ad-a000-88b9e73dd8f1 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": "975b5238-68fd-4c5d-95cc-589021c3eef5", "created_at": "2025-05-22T18:26:14.788167+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/975b5238-68fd-4c5d-95cc-589021c3eef5", "rel": "self"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_350_node_history_get_member [0.078077s] ... 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-e5dc1a6e-dd94-4709-a228-fef5ae89c4fe 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": "cb9c929d-d716-48f2-8930-b996294cadb3", "created_at": "2025-05-22T18:26:14.857835+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cb9c929d-d716-48f2-8930-b996294cadb3", "rel": "self"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_351_node_history_get_reader [0.075597s] ... 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-e72879f3-c1bc-40a6-9334-8dc9ddd80b2c 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": "b5eb3549-19cc-4cce-b265-dfe182572492", "created_at": "2025-05-22T18:26:14.944979+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b5eb3549-19cc-4cce-b265-dfe182572492", "rel": "self"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_352_node_history_get_service [0.062931s] ... 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-62d0d3f1-ac0e-40b0-9b72-246514bc9cf5 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": "2ec14dee-5d8c-4d93-869b-095460ba64ed", "created_at": "2025-05-22T18:26:15.009504+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2ec14dee-5d8c-4d93-869b-095460ba64ed", "rel": "self"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_353_node_history_get_entry_admin [0.064382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/08e8b8d7-b648-4af1-a234-356d83d9713e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7aef2c74-ff30-4fd2-b67c-74dd06d1089f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "08e8b8d7-b648-4af1-a234-356d83d9713e", "created_at": "2025-05-22T18:26:15.072838+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/08e8b8d7-b648-4af1-a234-356d83d9713e", "rel": "self"}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_354_node_history_get_entry_member [0.071947s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/39efba34-5531-49d4-b63b-09cbfefbf8fb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce3effd5-7d46-4f5e-a57b-e9bb2b242b0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "39efba34-5531-49d4-b63b-09cbfefbf8fb", "created_at": "2025-05-22T18:26:15.145405+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/39efba34-5531-49d4-b63b-09cbfefbf8fb", "rel": "self"}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_355_node_history_get_entry_reader [0.084244s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cc091c58-62a9-46cd-8e4a-1fa42233fd84 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf41fb38-be93-49be-9109-966e1e61c6b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "cc091c58-62a9-46cd-8e4a-1fa42233fd84", "created_at": "2025-05-22T18:26:15.221920+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/cc091c58-62a9-46cd-8e4a-1fa42233fd84", "rel": "self"}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_356_node_inventory_get_admin [0.084758s] ... 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-a5bf50e6-58f0-4ed4-9076-19235ca05e77 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_357_node_inventory_get_reader [0.077937s] ... 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-4fba2f3b-faeb-484a-a2b0-16afdacca0b0 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_358_node_history_get_entry_service [0.094946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a1eb64b8-e7d7-45ee-9bdf-dd8f2176ba6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-08947462-76ea-4421-bbd8-b5d6990c072d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a1eb64b8-e7d7-45ee-9bdf-dd8f2176ba6f", "created_at": "2025-05-22T18:26:15.486555+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/a1eb64b8-e7d7-45ee-9bdf-dd8f2176ba6f", "rel": "self"}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_359_shard_get_shards [0.077604s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf411126-767a-4a04-8267-4eaa0f4f0b6c 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}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_360_shard_patch_set_node_shard [0.145819s] ... 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-9d64dede-6808-478b-9ead-9f22be0de2f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_361_shard_patch_set_node_shard_disallowed [0.099775s] ... 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-750b9326-596f-4cc5-aa38-81db89236958 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_362_parent_node_patch_by_admin [0.215215s] ... 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-b0adee43-a1c0-4370-b64f-b44676b5aacf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_363_parent_node_patch_by_member [0.110256s] ... 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-5864d01b-975d-4174-95e9-5f7fd15e78c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-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_364_parent_node_patch_by_reader [0.078960s] ... 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-33d36eb6-8010-4359-b5d8-7bc82451ca1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_365_nodes_firmware_component_get_admin [0.072008s] ... 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-9b9011dd-5d80-4183-a1d3-2da001431d35 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-22T18:26:16.299721+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_366_nodes_firmware_component_get_member [0.075979s] ... 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-3461ba71-b7f2-4b02-823a-6f6aca588f20 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-22T18:26:16.372516+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_367_nodes_firmware_component_get_reader [0.073823s] ... 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-132857f9-8582-4367-a4d3-6ded6765468a 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-22T18:26:16.449635+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_368_runbooks_post_admin [0.075877s] ... 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/ef94906e-55f5-42ee-84b4-eb7e516b464d Openstack-Request-Id: req-8a3cf8ef-f5d8-4d4d-9c90-b9f4a930e891 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ef94906e-55f5-42ee-84b4-eb7e516b464d", "created_at": "2025-05-22T18:26:16.546812+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ef94906e-55f5-42ee-84b4-eb7e516b464d", "rel": "self"}, {"href": "http://localhost/runbooks/ef94906e-55f5-42ee-84b4-eb7e516b464d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_369_runbooks_post_member [0.076761s] ... 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/14acbdf4-db62-44a2-8797-e9183a5c1b31 Openstack-Request-Id: req-7a7084b5-6ebb-47ed-9219-c9345bdca4eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "14acbdf4-db62-44a2-8797-e9183a5c1b31", "created_at": "2025-05-22T18:26:16.625003+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/14acbdf4-db62-44a2-8797-e9183a5c1b31", "rel": "self"}, {"href": "http://localhost/runbooks/14acbdf4-db62-44a2-8797-e9183a5c1b31", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_370_runbooks_post_reader [0.072502s] ... 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-3b4803ef-2cb9-401b-a50b-7319f7cb8dfd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_371_runbooks_get_admin [0.068743s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-616cc279-6902-4b11-9de0-76b7d999366c 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": "58975684-bc07-4db4-8ef5-60375e61fbd0", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/58975684-bc07-4db4-8ef5-60375e61fbd0", "rel": "self"}, {"href": "http://localhost/runbooks/58975684-bc07-4db4-8ef5-60375e61fbd0", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_372_runbooks_get_member [0.074848s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-371ce78d-4f6c-4ee6-a455-186c942e6e81 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": "28a13198-5c27-4878-a67e-4da5ceb462d4", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/28a13198-5c27-4878-a67e-4da5ceb462d4", "rel": "self"}, {"href": "http://localhost/runbooks/28a13198-5c27-4878-a67e-4da5ceb462d4", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_373_runbooks_get_reader [0.071332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f602961-0bdd-494d-bdce-cbac6671864c 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": "b57bd278-978e-4553-9bcb-45f372565342", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/b57bd278-978e-4553-9bcb-45f372565342", "rel": "self"}, {"href": "http://localhost/runbooks/b57bd278-978e-4553-9bcb-45f372565342", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_374_runbooks_runbook_id_get_admin [0.068326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/a82c75ff-1fe3-492a-8a86-ee9a25e5fb67 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b0e78f1-cfd8-4cd6-86db-998490abd297 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a82c75ff-1fe3-492a-8a86-ee9a25e5fb67", "created_at": "2025-05-22T18:26:16.976472+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a82c75ff-1fe3-492a-8a86-ee9a25e5fb67", "rel": "self"}, {"href": "http://localhost/runbooks/a82c75ff-1fe3-492a-8a86-ee9a25e5fb67", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_375_runbooks_runbook_id_get_member [0.077312s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/df619d7f-bda7-4e72-918a-e20d1b6dc746 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b340145b-1c14-4486-8bee-9ea3ca953330 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "df619d7f-bda7-4e72-918a-e20d1b6dc746", "created_at": "2025-05-22T18:26:17.056178+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/df619d7f-bda7-4e72-918a-e20d1b6dc746", "rel": "self"}, {"href": "http://localhost/runbooks/df619d7f-bda7-4e72-918a-e20d1b6dc746", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_376_runbooks_runbook_id_get_reader [0.064646s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/4403e71f-8516-4498-89d8-48e5ebdcbdc3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-757b7cd2-a331-4897-abd3-42c486be90ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4403e71f-8516-4498-89d8-48e5ebdcbdc3", "created_at": "2025-05-22T18:26:17.122262+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4403e71f-8516-4498-89d8-48e5ebdcbdc3", "rel": "self"}, {"href": "http://localhost/runbooks/4403e71f-8516-4498-89d8-48e5ebdcbdc3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_377_runbooks_runbook_id_patch_admin [0.301955s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/6e2d6d00-2f0e-4228-b7da-1d857357e123 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a6c8a44d-c62b-431b-94d1-bd6dd01bb1f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6e2d6d00-2f0e-4228-b7da-1d857357e123", "created_at": "2025-05-22T18:26:17.202155+00:00", "updated_at": "2025-05-22T18:26:17.431918+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6e2d6d00-2f0e-4228-b7da-1d857357e123", "rel": "self"}, {"href": "http://localhost/runbooks/6e2d6d00-2f0e-4228-b7da-1d857357e123", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_378_runbooks_runbook_id_patch_member [0.103380s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/300b54a5-6a7e-404a-8370-83c8f70de9ea WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d45c2bc-06b1-429b-bc37-8d40405353d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "300b54a5-6a7e-404a-8370-83c8f70de9ea", "created_at": "2025-05-22T18:26:17.491805+00:00", "updated_at": "2025-05-22T18:26:17.528379+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/300b54a5-6a7e-404a-8370-83c8f70de9ea", "rel": "self"}, {"href": "http://localhost/runbooks/300b54a5-6a7e-404a-8370-83c8f70de9ea", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_379_runbooks_runbook_id_patch_reader [0.071460s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b54d2ea7-cc27-4019-8696-289e3fd70aea WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0b626901-6581-4def-a7ba-622268921df9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_380_runbooks_runbook_id_patch_public_admin [0.100991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/de533dd7-1120-4dfa-8007-30041f57c3f1 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-49466a13-bcbb-4c8d-906d-d968e022553a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "de533dd7-1120-4dfa-8007-30041f57c3f1", "created_at": "2025-05-22T18:26:17.671797+00:00", "updated_at": "2025-05-22T18:26:17.712872+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/de533dd7-1120-4dfa-8007-30041f57c3f1", "rel": "self"}, {"href": "http://localhost/runbooks/de533dd7-1120-4dfa-8007-30041f57c3f1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_381_runbooks_runbook_id_patch_public_member [0.136212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/78afbcd6-0f61-466d-add2-e006faaa081f WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-caf9ad67-cbcc-4f71-baed-fdf5710fc9ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "78afbcd6-0f61-466d-add2-e006faaa081f", "created_at": "2025-05-22T18:26:17.799662+00:00", "updated_at": "2025-05-22T18:26:17.849154+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/78afbcd6-0f61-466d-add2-e006faaa081f", "rel": "self"}, {"href": "http://localhost/runbooks/78afbcd6-0f61-466d-add2-e006faaa081f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_382_runbooks_runbook_id_patch_public_reader [0.118719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/8683ab6b-6eef-414b-9475-2dee9c2b90b0 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-009f0972-b871-48b8-b56d-18a6efe4375c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_383_runbooks_runbook_id_patch_owner_admin [0.109494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a0f78db2-e557-41da-b826-0fa6b2716901 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9174f9e0-1675-4883-b89c-28b0551a7cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a0f78db2-e557-41da-b826-0fa6b2716901", "created_at": "2025-05-22T18:26:18.047933+00:00", "updated_at": "2025-05-22T18:26:18.084283+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a0f78db2-e557-41da-b826-0fa6b2716901", "rel": "self"}, {"href": "http://localhost/runbooks/a0f78db2-e557-41da-b826-0fa6b2716901", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_384_runbooks_runbook_id_patch_owner_member [0.106279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/5930a5a5-c1ad-45f9-a1e6-9665af4b6c72 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7973b242-5be3-46f6-ba41-87057495b0db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5930a5a5-c1ad-45f9-a1e6-9665af4b6c72", "created_at": "2025-05-22T18:26:18.154355+00:00", "updated_at": "2025-05-22T18:26:18.190811+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/5930a5a5-c1ad-45f9-a1e6-9665af4b6c72", "rel": "self"}, {"href": "http://localhost/runbooks/5930a5a5-c1ad-45f9-a1e6-9665af4b6c72", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_385_runbooks_runbook_id_patch_owner_reader [0.082121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/20a6a869-b0fa-4079-8702-855e6966b138 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-570522f4-de02-4b75-b1ae-0de00114cb7a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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.api.test_acl.TestRBACScopedRequests.test_system_scoped_386_runbooks_runbook_id_delete_admin [0.073184s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/81731c36-bf17-4585-8262-8e3425160eef GOT Response: 204 No Content Openstack-Request-Id: req-a84c7380-0b1b-49fb-9d97-12892acf4898 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_387_runbooks_runbook_id_delete_member [0.070210s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/2b782cef-d6bf-41d5-ba1a-6c94dbc91123 GOT Response: 204 No Content Openstack-Request-Id: req-dbaa30f5-fbeb-4431-88fe-f490b85c6a7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_388_runbooks_runbook_id_delete_reader [0.073639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/da9948ed-69bd-45a0-bed8-7d5b98157075 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-37be154e-dec2-4c7c-9d44-5ebfacdc8ebc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-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}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_389_runbooks_post_project_admin [0.078197s] ... 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/44f5c6c7-8d25-4752-89ef-5cc18c2cfdc2 Openstack-Request-Id: req-8ed82861-3840-4491-b44d-61a0cfcc1e50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "44f5c6c7-8d25-4752-89ef-5cc18c2cfdc2", "created_at": "2025-05-22T18:26:18.574323+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/44f5c6c7-8d25-4752-89ef-5cc18c2cfdc2", "rel": "self"}, {"href": "http://localhost/runbooks/44f5c6c7-8d25-4752-89ef-5cc18c2cfdc2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_390_public_runbooks_post_admin [0.084796s] ... 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/607c4c0b-5ff1-46b7-b097-1c2e86479715 Openstack-Request-Id: req-221fee28-54e7-4086-a5c3-4685b451ff38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "607c4c0b-5ff1-46b7-b097-1c2e86479715", "created_at": "2025-05-22T18:26:18.659598+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/607c4c0b-5ff1-46b7-b097-1c2e86479715", "rel": "self"}, {"href": "http://localhost/runbooks/607c4c0b-5ff1-46b7-b097-1c2e86479715", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg [0.022119s] ... ok {1} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types [0.024818s] ... ok {1} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature [0.021084s] ... ok {1} ironic.tests.unit.api.test_method.TestExpose.test_exception [0.028081s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/ouch WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a308f269-34b4-453b-a665-4965bd60355f {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_method.TestExpose.test_expose [0.027691s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': True} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8fcd237c-00d6-46be-a683-513fcb2c0680 {"foo": true} {1} ironic.tests.unit.api.test_method.TestExpose.test_expose_validation [0.026970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': 'truish'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a8f44534-607b-44be-b6a6-195015e7e7e1 {"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}"} {1} ironic.tests.unit.api.test_method.TestExpose.test_post_body [0.029733s] ... 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-194e7eb9-31aa-4840-b04e-eb7876652db1 {"three": "three", "four": "four", "five": "five"} {1} ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation [0.030568s] ... 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-43fd647f-c85b-4b35-9222-a583b2cfc23c {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_method.TestExpose.test_response_204 [0.028240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/no_content WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-dd3f452b-8eb2-4eb5-9f06-9bd9e894a484 {1} ironic.tests.unit.api.test_method.TestExpose.test_response_content [0.027636s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_content WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-61b5ef69-d141-40b4-9ec1-35aa87eb2d92 "nothing" {1} ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status [0.026652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_custom_status WITH {} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-c7aca400-54fb-46ec-9334-e420994994de "accepted" {1} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.027288s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4ed67c8-2d98-490a-b22f-324cd86b708a 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"}]} {1} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.029069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9be0d973-eab7-445d-9410-a80fe33d1187 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"}]} {1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.028097s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b086228-03b4-44e9-92b0-ecf5b54b90d1 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_root.TestV1Root.test_get_v1_23_root [0.027689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f74ba901-4f3e-48c2-9fd3-a8cf43a56f37 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"}]} {1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.027986s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7527a4f2-0ef5-434e-8d5b-7755dc499ffa 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"}]} {1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root [0.028012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4313eee8-8edd-431a-b8aa-d5c0cebfce6b 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.common.test_args.ValidateDecoratorTest.test_and [0.021064s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean [0.019818s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args [0.018820s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs [0.018653s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function [0.019223s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs [0.019432s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer [0.026664s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address [0.019116s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory [0.020460s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated [0.019851s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name [0.019914s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or [0.020745s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string [0.020150s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list [0.019813s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args [0.020829s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid [0.021065s] ... ok {1} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name [0.020333s] ... ok {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_empty_response [0.021954s] ... ok {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline [0.021518s] ... ok {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline_no_file [0.021105s] ... ok {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_nomatch_line [0.020918s] ... ok {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_one_line [0.020222s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.021064s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ [0.019698s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.020388s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server [0.020818s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.021051s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.020226s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info [0.019283s] ... ok {1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.018974s] ... ok {1} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.214057s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.040435s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.042650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.000117s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.022692s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.019673s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.019560s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.019203s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url [0.030508s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.031863s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix [0.030681s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore [0.044649s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.057460s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.044492s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.048227s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.048455s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.045303s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.046427s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.032267s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_access_via_auth_token_enabled [0.023141s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_admin_if_config_enabled [0.020831s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_community_image [0.020573s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_private_image_owned_by_conductor [0.020179s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_public_image [0.020691s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_shared_image_if_member [0.022158s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_deny_private_image_different_owner [0.021240s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.027554s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.029163s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.020380s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.026953s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.025544s] ... ok {1} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.025847s] ... ok {1} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_all_conditions_fail [0.044885s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestApplyRules.test_apply_rules_ironic_exception [0.056423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestApplyRules.test_apply_rules_no_rules [0.063381s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestApplyRules.test_apply_rules_some_conditions_pass [0.052008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestApplyRules.test_apply_rules_success [0.046871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestApplyRules.test_apply_rules_with_always_mask [0.080175s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestApplyRules.test_apply_rules_with_never_mask [0.061781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestApplyRules.test_apply_rules_with_sensitive_mask [0.066840s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.TestService.test_authenticated [0.034335s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role [0.028675s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_allowed_role [0.037631s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_with_allowed_role [0.036652s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure [0.034384s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo [0.038250s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic [0.038088s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic_not_authenticated [0.036762s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests [0.035566s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context [0.037785s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_mask_secrets [0.032690s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found [0.032041s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post [0.028604s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument [0.027339s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_no_context [0.032507s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_no_deny_methods [0.027912s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body [0.028553s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_notification [0.033479s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_success [0.029983s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result [0.027268s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure [0.028938s] ... ok {1} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive [0.259198s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift [0.067719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.022283s] ... ok {1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple [0.025315s] ... ok {1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple_https [0.030730s] ... ok {1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_with_path_and_port [0.021636s] ... ok {1} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.074655s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.051237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.025262s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.030934s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.026586s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.023766s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.024243s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.022248s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l2 [0.023432s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l3 [0.023215s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.023324s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.024238s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.023979s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment [0.024405s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet [0.025706s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.024907s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.023301s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.024475s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.022890s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.022041s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.022918s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.024949s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.022343s] ... ok {1} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.021908s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 [0.023395s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 [0.022190s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 [0.022356s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 [0.023061s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 [0.023269s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 [0.023453s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 [0.023128s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 [0.039884s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 [0.025798s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 [0.025339s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 [0.027069s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 [0.024613s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 [0.025407s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 [0.024916s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 [0.026689s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 [0.024309s] ... ok {1} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 [0.026024s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.054312s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info [0.053464s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info [0.057919s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default [0.066544s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe [0.044497s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.044050s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot [0.051208s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.041797s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt [0.045356s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue [0.048570s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.050236s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params [0.046356s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe [0.050486s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat [0.056273s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path [0.048060s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config [0.208948s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot [0.036132s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template [0.031609s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables [0.030858s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable [0.027840s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.037703s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.027740s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.024958s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.025701s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.037912s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.039703s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.034919s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda [0.036650s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso [0.038841s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing [0.054019s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.039369s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.036119s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option [0.050476s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http [0.057200s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.028468s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.028203s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.028636s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.027201s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.025546s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.027366s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.027981s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.027922s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.026119s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.028936s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.027926s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.028358s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk [0.027484s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.036036s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path [0.026825s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.026520s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.028045s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.026362s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.048491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.054124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.051725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.052987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.052912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.053168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.054212s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.053952s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress [0.054719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.031865s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.032214s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.029059s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback [0.029690s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.048628s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios [0.049409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi [0.051575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.046848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.048078s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.049281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.239942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.035448s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda [0.041176s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso [0.039610s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk [0.038787s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.038104s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath [0.039894s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.038221s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.038121s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.043026s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.038409s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.029170s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.039965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios [0.039782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv4 [0.039699s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv6 [0.040424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv4 [0.038780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv6 [0.041272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.043895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios [0.043323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script [0.029579s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.029873s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.026959s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.026996s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.027467s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.026408s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.028592s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_link_mac_pxe_configs_with_pxe_disabled [0.050613s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config [0.032529s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs [0.032208s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_pxe_config [0.032261s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop [0.026903s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source [0.028430s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path [0.028413s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files [0.029598s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod [0.027736s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy [0.027957s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path [0.035667s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_adopt [0.047761s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_servicing [0.041201s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.023530s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.022260s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.023005s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.022664s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.022206s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.033267s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.024922s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.024793s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.025876s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.024274s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.024601s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.026005s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.023316s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.030323s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.024814s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.025684s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software [0.034674s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks [0.024851s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.023949s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.022373s] ... ok {1} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.023942s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.020942s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.021088s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.021047s] ... ok {1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.022431s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.022802s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity [0.025202s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.020369s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.020581s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.021614s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.183427s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.021086s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.020367s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.019256s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.018709s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.019521s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.019641s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.021479s] ... ok {1} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.020010s] ... ok {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs [0.023288s] ... ok {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_label [0.021822s] ... ok {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unexpected_error [0.020641s] ... ok {1} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs [0.021464s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.020332s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.022822s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.021742s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.022288s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.023795s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok [0.021799s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.021003s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient [0.020478s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good [0.020946s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers [0.021528s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only [0.020262s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir [0.018740s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.020899s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.027149s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.033901s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.034954s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit [0.037764s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.034900s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.035256s] ... ok {1} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.035296s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.087996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation [0.071589s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.079497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.057511s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.055571s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.054138s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.053118s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.035049s] ... ok {1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.085649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.MiscTestCase.test__fail_transient_state [0.091306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/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.MiscTestCase.test__fail_transient_state_maintenance [0.092006s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.070398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_del_host_waits_on_workerpool [0.071375s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_del_host_with_mdns [0.069171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.070239s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_clears_conductor_locks [0.086584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_dbapi_single_call [0.062229s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.043326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (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_hw_types [0.038068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (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.026537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (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_recover_nodes_stuck [0.433734s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/site-packages/tooz/hashring.py:86: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead key_hash = md5(key, usedforsecurity=False) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/tooz/hashring.py:126: DeprecationWarning: Using function/method 'md5()' is deprecated: Use hashlib.md5 instead hashed_key = self._hash2int(md5(data, usedforsecurity=False)) /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.077928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_names [0.121775s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.046895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc [0.066934s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc_port [0.065848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.075198s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.074299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces [0.062985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_without_jsonrpc_port_pined_version [0.075595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks [0.080368s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.069492s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.038241s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.066605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.075698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.221238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.127802s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.CreateNodeTestCase.test_create_node [0.037226s] ... ok {1} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.212597s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.047133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.035158s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.045289s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.051052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_gone [0.044904s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.031882s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.038280s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.084551s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.090153s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_automated_clean [0.091892s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_manual_clean [0.083427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provision_action_abort_from_deployhold [0.087279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.086903s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provision_action_manage [0.090991s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provision_action_provide [0.089639s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.085416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.096695s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.9/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.031743s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.029298s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.028467s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.028500s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.041117s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.038936s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.061145s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support [0.037004s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.036517s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.029858s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.034185s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.058598s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_with_disable_power_off [0.038474s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.030714s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.033284s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.038383s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.031246s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node [0.033141s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.030652s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection [0.044636s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.033298s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.072047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.241325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.045284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.053062s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.061450s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [0.068712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.049850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.045272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.046081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_not_found [0.046572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.046720s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.068820s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev120/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.029664s] ... ok {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.063912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.063940s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.049894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.055434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive [0.043163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check [0.030364s] ... ok {1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit [0.028873s] ... ok {1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run [0.026772s] ... ok {1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple [2.053433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop [0.048845s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.050828s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.025101s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.021816s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.286105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.123776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.054866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.033361s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override [0.032841s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable [0.036809s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail [0.033919s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok [0.033502s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.042587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.051512s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk [0.040082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.042154s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.039361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.041826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.044803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.039310s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk [0.038223s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_reserved_options [0.038863s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.047984s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.047224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_off [0.057137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_on [0.048503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_reboot [0.048925s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.AgentTokenUtilsTestCase.test_add_secret_token [0.019788s] ... ok {1} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present [0.018907s] ... ok {1} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info [0.018915s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty [0.025639s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated [0.025593s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict [0.025944s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string [0.025127s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive [0.029162s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string [0.196666s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps [0.037683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip [0.036489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step [0.036204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps [0.037479s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip [0.038357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step [0.037263s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception [0.038964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.GetTokenProjectFromRequestTestCase.test_no_token_info [0.021760s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present [0.022339s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor [0.025983s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.039867s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_deploy [0.040008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.040144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_no_need [0.041293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.045598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.044063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.046878s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.027825s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.034314s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.042620s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.041699s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.038236s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.038939s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.039011s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.053553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.055487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.052021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.051241s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.050424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.StoreAgentCertificateTestCase.test_no_change [0.025567s] ... ok {1} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing [0.024378s] ... ok {1} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new [0.025420s] ... ok {1} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over [0.024577s] ... ok {1} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.051231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.055660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.055654s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.052404s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.053123s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.072558s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.061318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.052003s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.057328s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.059250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.050104s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.048381s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.051395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.055064s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.054113s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.049695s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.054314s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.048903s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.054714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.054624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.043041s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.043422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.055132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.047919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.224451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.054343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.042883s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.045371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_bad_path_raises [0.019644s] ... ok {1} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths [0.018707s] ... ok {1} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths_trailing_slash [0.019476s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_fail [0.023705s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_ok [0.024203s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_priority [0.031689s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_ok [0.024520s] ... ok {1} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_unknown [0.021841s] ... ok {1} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_handshake [0.024358s] ... ok {1} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_types [0.019748s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up [0.022524s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.022670s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.045749s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.039187s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid [0.029580s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id [0.030270s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found [0.027549s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id [0.029900s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty [0.025316s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid [0.025416s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found [0.025323s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list [0.029293s] ... ok {1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted [0.028752s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create [0.022908s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_name [0.024741s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_uuid [0.024318s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_invalid_step_no_interface [0.026140s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_no_steps [0.024874s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_destroy [0.032231s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_id [0.031338s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_name [0.027920s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_uuid [0.027129s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list [0.028375s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names [0.028862s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names_no_match [0.026924s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_sorted [0.027172s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_duplicate_name [0.027561s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_extra [0.027583s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_name [0.026654s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_not_found [0.024347s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_add [0.026654s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_remove_all [0.027034s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace [0.027220s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace_args [0.026899s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_uuid_not_allowed [0.023058s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.024836s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.025575s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.026166s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.031658s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.026237s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.030994s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.029440s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.029680s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.028595s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.025695s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.026361s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.025030s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.026571s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.027275s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.026837s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.024712s] ... ok {1} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.018571s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.029224s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.205378s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 [0.030114s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.029400s] ... ok {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.049794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.058102s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.048833s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.047031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.053181s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.048905s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.058791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.046885s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.053271s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.054974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.044459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.054680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.048066s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.056494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.046481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.060376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.045830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 [0.059392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 [0.046627s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.045161s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.042682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.052355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.042894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.040657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.042829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.045932s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.044504s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.043419s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.046764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.045946s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.045421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.046747s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.035546s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.034762s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.042117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout [0.043236s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout [0.043951s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout [0.042636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.041619s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate [0.033806s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.036043s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_boot_mode.BootModeTestCase.test_boot_mode [0.052355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_all_valid_data [0.043269s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_bad_value_linkagg [0.047008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_bad_value_macphy [0.209269s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_chassis_ids [0.038292s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_duplicate_tlvs [0.043162s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_invalid_ip [0.041027s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_multiple_interfaces [0.041024s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_null_strings [0.039088s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_old_format [0.038978s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_truncated_int [0.039396s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_truncated_mac [0.037256s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_unhandled_oui [0.037383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_parse_lldp.ParseLLDPTestCase.test_unhandled_tlvs [0.036856s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_ramdisk_error.RamdiskErrorTestCase.test_ramdisk_error [0.036494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_all_match [0.050925s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_first_match_on_skip_list_use_second [0.051998s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_incorrect_hint [0.044215s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_local_gb_without_spacing [0.049309s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_no_hints [0.044841s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_one_matches [0.049018s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_root_device_skip_list [0.047242s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_size_invalid [0.038500s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_size_string [0.050364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_root_device.RootDeviceTestCase.test_zero_size [0.050654s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.GetInterfacesTestCase.test_get_interfaces [0.023540s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_custom_params [0.056474s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_disable_power_off [0.045963s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_error [0.066468s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track [0.059340s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track_via_driver_info [0.058052s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_ok [0.055568s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_require_managed_boot [0.027199s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_error [0.035756s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_ok [0.037820s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_ok [0.028217s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_require_managed_boot [0.026837s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_boot_clean_up_failed [0.053103s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed [0.045701s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_disable_power_off [0.046568s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off [0.033420s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off_on_fast_track [0.033325s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_network_clean_up_failed [0.046661s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged [0.026850s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged_force_power_off [0.041013s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.049163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.051908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.049850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.211176s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance [0.055191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active [0.060843s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart [0.073439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios [0.073122s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_lenovo [0.054340s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.066834s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.064806s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.070952s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios [0.072965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.077238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.131235s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.070538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.075189s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios [0.069123s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.081071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.075132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.094702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.082183s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.103265s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.075223s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.042793s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.045469s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.046801s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.045849s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.042732s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection [0.047491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk [0.231591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set [0.055696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id [0.054911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot [0.041078s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local [0.043810s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.040352s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.043493s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance [0.056243s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... SKIPPED: bug #2025424 {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.051888s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.052066s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.041745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.046894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.048490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... SKIPPED: bug #2025424 {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.048688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.048931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.061458s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.063555s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.062887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [0.122783s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.026725s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate [0.042840s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.050761s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.043597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.048977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.050702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.070070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.066097s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.073521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.073900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.068459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.076986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.045110s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.047936s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.071268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.057246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.073353s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.073449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.071915s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.068380s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.080877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.070151s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.243637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.068884s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.069605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.066237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.019474s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.019256s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.035350s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.034920s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.034805s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.034920s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.037379s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.024576s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.024426s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.024118s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.023079s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.022879s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.023655s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.023701s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.031841s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.034879s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.037281s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.032929s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.033168s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.033591s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.032680s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.034591s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.033408s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.108283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.052933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.046635s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.051686s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.120923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid [0.092472s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.107644s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.104696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.123737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.108094s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.108869s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid [0.088924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid [0.115464s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs [0.120077s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.054430s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.061731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.051610s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.217563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.056763s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.062895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.046669s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.053791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.059626s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.072036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.053324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.055962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.050772s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.047444s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.050354s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.052357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.045053s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.045017s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.049924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.097260s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.105406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.112274s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.093793s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.098284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.099259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.089306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.100449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.104218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.093420s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.116938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.116000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.065723s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.056052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.051752s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.063968s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.086912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.058240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.063356s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.067668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.048036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.044481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.049040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.049461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.051468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.047941s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.050717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.226565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.056484s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.051010s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.055987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.059133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.053283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.053673s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.060131s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.049434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.053946s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.051166s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.049764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.046741s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.048196s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.035171s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.041638s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.038146s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.041761s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.048813s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.048519s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.032472s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.032668s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.038744s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.043409s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.044714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.042011s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.042775s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.042983s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.044423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.047381s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.056847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup [0.055105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.042190s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.042700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_provisioning_network [0.042517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.041807s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.041070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.040695s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.027855s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.039782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.043334s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.042256s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.044351s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.048393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.043165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_validate [0.043800s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_vif_attach [0.045637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_vif_detach [0.044817s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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_vif_list [0.045592s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.064574s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed [0.060699s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.054903s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed [0.059563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.063722s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.247416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track [0.063545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate [0.058740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset [0.057849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.043635s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_apply_time_attr [0.059283s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times [0.058950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.040444s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.061804s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.061599s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.062788s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.053598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.042433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.039378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.059206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.056782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.066872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.064594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track [0.062847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.033344s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.054915s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.034245s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto [0.049256s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic [0.049380s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session [0.050389s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache [0.049598s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching [0.051135s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address [0.049168s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password [0.250738s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username [0.048469s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse [0.048909s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions [0.052908s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system [0.045634s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems [0.045115s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry [0.045268s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error [0.046183s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry [0.046664s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found [0.045609s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready [0.046538s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error [0.047117s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up [0.047354s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_clean_up_disable_power_off [0.046819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_deploy [0.048148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_deploy_fast_track [0.059579s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.048355s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_deploy_with_deployment_reboot [0.052287s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_get_clean_steps [0.043093s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_get_clean_steps_config_priority [0.044667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_get_properties [0.029278s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_service_steps [0.043259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare [0.072291s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.060902s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_adopting [0.047793s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_boot_from_volume [0.259687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_cleaning [0.045472s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_cleaning_fast_track [0.044563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.044087s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_fast_track [0.064846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_instance_boot [0.053002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_instance_boot_localboot [0.064379s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot [0.053717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_instance_boot_partition_image [0.063359s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 [0.062971s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic [0.050451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.083638s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_rescue_states [0.107552s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_service [0.066677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_storage_write_false [0.066553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_with_neutron_net [0.079495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_prepare_with_smartnic_port [0.076824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_tear_down [0.068070s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.TestAgentDeploy.test_tear_down_cleaning [0.044962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.047206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_tear_down_disable_power_off [0.070889s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.TestAgentDeploy.test_tear_down_service [0.045861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_tear_down_service_disable_power_off [0.046908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_tear_down_with_smartnic_port [0.073449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate [0.048136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.054490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_file_image_no_checksum [0.052646s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_instance_info_missing_params [0.050962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_invalid_image_type [0.048937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_invalid_proxies [0.041485s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.040959s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo [0.039158s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.049397s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo [0.048729s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_nonglance_image_no_os_algo [0.051134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum [0.049955s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash [0.053161s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_oci_no_checksum [0.052297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_validate_storage_should_write_image_false [0.043059s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image [0.059757s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_basic_auth_success [0.054797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_basic_auth_success_blocked [0.056608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_image_source_is_url [0.055993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_oci_authorization [0.052099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_partition_image [0.053631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_render_configdrive [0.261708s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies [0.053856s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.TestAgentDeploy.test_write_image_with_proxies [0.057333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.BootInstanceTest.test_boot_instance [0.047496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.BootInstanceTest.test_boot_instance_no_power_on [0.046777s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning [0.057832s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_after_reboot [0.064292s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch [0.055933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail [0.050711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_fail [0.044530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch [0.059591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running [0.053705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command [0.046696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot [0.058184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running [0.043284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown [0.052230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook [0.055777s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails [0.049906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning [0.053103s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook [0.029763s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook_no_hook_registered [0.036088s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot [0.048427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_deploy [0.048385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail [0.039795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail_deploy [0.038921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail_servicing [0.044405s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_pregenerated_token [0.049440s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test_post_clean_step_hook [0.024996s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.045129s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.045721s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.044579s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.InstanceImageCacheTestCase.test_with_master_path [0.023091s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.022945s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.020278s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.019511s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set [0.019192s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode [0.018996s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode [0.019188s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.018389s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.018379s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.018803s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.018501s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.021471s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.019336s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.019725s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.019355s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.019221s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.019917s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.046257s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.054749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.037804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.040502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source [0.031021s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict [0.028834s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id [0.029020s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.027038s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.026116s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.025926s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot [0.027470s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.030861s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy [0.026270s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.031212s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.227382s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.029661s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.025065s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.030114s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config [0.031761s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param [0.026264s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found [0.026406s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios [0.032867s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso [0.040193s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info [0.036290s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode [0.033910s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params [0.040840s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params [0.039093s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults [0.034115s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info [0.040062s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios [0.040711s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios [0.035224s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning [0.037490s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi [0.042356s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi [0.033800s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_with_node_external_http_url [0.035819s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image [0.041132s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image [0.034126s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso [0.034479s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied [0.042008s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image [0.036661s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url [0.034475s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url [0.040607s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso [0.043369s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso [0.045850s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix [0.034751s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip [0.034693s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data [0.035892s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls [0.035594s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image [0.033605s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file [0.032576s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix [0.033115s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image [0.032839s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url [0.034488s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url [0.033917s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip [0.033686s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image [0.033579s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_custom_cache [0.034340s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_file [0.040971s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_from_swift [0.037905s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local [0.038617s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local_external_http_url [0.044394s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_noop [0.040430s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_schema [0.031478s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.047989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors [0.027010s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list [0.026667s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element [0.026214s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first [0.026099s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.031314s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite [0.033348s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.050212s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.048903s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.046821s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.032453s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.238533s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.028284s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.028171s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite [0.046786s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.036025s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.040913s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.041137s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.031969s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries [0.032092s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple [0.033207s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.029347s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.027684s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout [0.028717s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.032555s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.029047s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.029379s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args [0.025690s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.027273s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.030454s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.030503s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.026193s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite [0.026747s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 [0.028393s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number [0.035422s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.029243s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.027732s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.025448s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.031291s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.029250s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated [0.027365s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified [0.025557s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.028367s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.033801s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.027027s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.030272s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.028196s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.030222s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.027114s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.027427s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.028635s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [0.049515s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodTestCase.test__power_status_error [0.035610s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.039807s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.028210s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.028079s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_caller_exception [0.027994s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_str_password [0.026908s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_known_exception [0.026129s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_unknown_exception [0.027327s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_with_numeric_password [0.027646s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_write_exception [0.030857s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__set_and_wait_explicit_reboot [0.043400s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodTestCase.test__soft_power_off [0.058269s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [0.045252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.029295s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.028198s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.028518s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.027790s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.028419s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.027045s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.026997s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.028064s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.028800s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.029834s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.032683s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.028439s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.029942s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.221827s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.029362s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console [0.050091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.040630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.041477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console [0.042129s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.044048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail [0.037682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.039823s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate [0.034898s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.035487s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.032588s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate [0.032019s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.031329s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.039348s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.043165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port [0.055462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_with_port [0.044220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console [0.042957s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.043071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_clean_up_instance [0.045508s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_clean_up_ramdisk [0.049190s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.048279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_ensure_boot_interface_is_not_http_enabled [0.037708s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.039326s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance [0.056475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_instance_active [0.058091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.066449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios [0.081512s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk [0.074082s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_instance_ramdisk [0.064222s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_instance_ramdisk_bios [0.088165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg [0.065255s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_instance_with_fallback [0.085093s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk [0.083329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.082277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.085762s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.069659s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.072585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.270298s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.072530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.074377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.073371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.075542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.076160s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.071796s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.086144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.088785s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.085892s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-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.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.075034s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.042825s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.038985s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.040428s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.039532s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.042397s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection [0.048096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.051512s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.iPXEBootTestCase.test_validate_no_image_source_for_local_boot [0.042361s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.048451s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso [0.045001s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source [0.054987s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.049744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.038707s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.040892s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.058293s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.045612s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.PXEBootRetryTestCase.test_check_boot_timeouts [0.041206s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_http_boot_not_enabled [0.031391s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.037195s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.042518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-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.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.042834s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy [0.090808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive [0.091734s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port [0.135503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step [0.046937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps [0.043847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps [0.244129s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare [0.059666s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active [0.045427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning [0.041654s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk [0.084233s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing [0.047660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning [0.040870s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate [0.043700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate [0.040098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch [0.045044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso [0.042456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.025885s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.047440s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.047479s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.060546s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_client [0.030968s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.048671s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport [0.053374s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.055337s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.053985s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err [0.051777s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.050272s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine [0.054754s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport [0.048567s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next [0.052278s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.052174s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.048198s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set [0.048211s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.047715s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport [0.050185s] ... ok {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.041445s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off [0.041059s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on [0.040671s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.041698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties [0.045852s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot [0.046393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error [0.047575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.047690s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout [0.045154s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error [0.048482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off [0.039436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error [0.039187s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure [0.039210s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on [0.041297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error [0.039591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure [0.039051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout [0.038969s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/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.CleanStepDecoratorTestCase.test__validate_argsinfo [0.019638s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.019546s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.018465s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.017685s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.017926s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.017699s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.232313s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.018939s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.058443s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.020246s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.019935s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.019688s] ... ok {1} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.018929s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.018635s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.021833s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.019527s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.018876s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.021994s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.022544s] ... ok {1} ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables [0.019210s] ... ok {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces [0.039862s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue [0.041048s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector [0.040526s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios [0.037853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe [0.043268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.027526s] ... ok {1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.041378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.042424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing [0.023930s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set [0.023524s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing [0.022255s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.024551s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.023185s] ... ok {1} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove [0.024196s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.019860s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.019857s] ... ok {1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.018991s] ... ok {1} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.019825s] ... ok {1} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.018582s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.018258s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.019866s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.022064s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload [0.021999s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.023037s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits [0.022937s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.022068s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload [0.024583s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.024164s] ... ok {1} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_create [0.023495s] ... ok {1} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_destroy [0.025794s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.024478s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.025550s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.020265s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.019263s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.021602s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.019532s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets [0.019220s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets [0.019377s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected [0.019332s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.023552s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.023820s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.024466s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.020839s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.021526s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.019912s] ... ok {1} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.020785s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.021376s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.021425s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.020810s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.019901s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.021252s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.020579s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat [0.019119s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.019415s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.018999s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 [0.020487s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.020383s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 [0.020862s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.019231s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_contains [0.018861s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.018726s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old [0.019064s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.020665s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.019741s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.020075s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.020668s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade [0.020742s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.022213s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.020168s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.021000s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned [0.021191s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.205244s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.020111s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.019678s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.020531s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.021036s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.019285s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.017734s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.017484s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.017785s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.017746s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.017761s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.017405s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.018245s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor [0.018039s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.017268s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.017643s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.017188s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.017278s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.017083s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object [0.017317s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.017699s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.018448s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.018406s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.019384s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.019295s] ... ok {1} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.026217s] ... ok {1} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.019702s] ... ok {1} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.019235s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create [0.022530s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.020665s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.021804s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.021691s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.022370s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.022112s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.022447s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.022219s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.023565s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.034395s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.034171s] ... ok {1} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.053905s] ... ok {1} ironic.tests.unit.pxe_filter.test_service.TestManager.test_init_and_run [0.036893s] ... ok ====== Totals ====== Ran: 10056 tests in 405.4573 sec. - Passed: 10011 - Skipped: 45 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 0 Sum of execute time for each test: 1280.1678 sec. ============== Worker Balance ============== - Worker 0 (2366 tests) => 0:05:31.245878 - Worker 1 (3449 tests) => 0:06:45.457341 - Worker 2 (1878 tests) => 0:04:16.642442 - Worker 3 (2363 tests) => 0:05:08.433536 Test id Runtime (s) ----------------------------------------------------------------------------------------------------------------------------- ----------- ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on 4.166 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout 3.208 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout 3.142 ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state 2.952 ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_exception_if_child_locked 2.232 ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_exception_if_parent_locked 2.224 ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc 2.189 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok 2.121 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail 2.116 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok 2.101 ___________________________________ summary ____________________________________ py39: commands succeeded congratulations :) + RPM_EC=0 ++ jobs -p + exit 0 Processing files: openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.noarch Provides: openstack-ironic = 1:29.1.0-0.20250522181724.3387a8f.el9 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 Processing files: openstack-ironic-common-29.1.0-0.20250522181724.3387a8f.el9.noarch warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/lib/python3.9/site-packages/ironic_tests.egg_info Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.ZJNVPA + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/share/doc/openstack-ironic-common + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/share/doc/openstack-ironic-common + cp -pr README.rst /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/share/doc/openstack-ironic-common + cp -pr etc/ironic/policy.yaml.sample /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/share/doc/openstack-ironic-common + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.xYWrVT + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/share/licenses/openstack-ironic-common + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/share/licenses/openstack-ironic-common + cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9 openstack-ironic-common = 1:29.1.0-0.20250522181724.3387a8f.el9 python3.9dist(ironic) = 29.1~~dev120 python3dist(ironic) = 29.1~~dev120 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.9 python3.9dist(alembic) >= 1.4.2 python3.9dist(automaton) >= 1.9 python3.9dist(bcrypt) >= 3.1.3 python3.9dist(construct) >= 2.9.39 python3.9dist(eventlet) >= 0.30.1 python3.9dist(futurist) >= 1.2 python3.9dist(jinja2) >= 3 python3.9dist(jsonpatch) >= 1.16 python3.9dist(jsonschema) >= 4 python3.9dist(keystoneauth1) >= 4.2 python3.9dist(keystonemiddleware) >= 9.5 python3.9dist(microversion-parse) >= 1.0.1 python3.9dist(netaddr) python3.9dist(openstacksdk) >= 0.99 python3.9dist(os-service-types) >= 1.7 python3.9dist(os-traits) >= 0.4 python3.9dist(oslo-concurrency) >= 4.2 python3.9dist(oslo-config) >= 6.8 python3.9dist(oslo-context) >= 2.22 python3.9dist(oslo-db) >= 9.1 python3.9dist(oslo-log) >= 4.3 python3.9dist(oslo-messaging) >= 14.1 python3.9dist(oslo-middleware) >= 3.31 python3.9dist(oslo-policy) >= 4.5 python3.9dist(oslo-rootwrap) >= 5.8 python3.9dist(oslo-serialization) >= 2.25 python3.9dist(oslo-service) >= 1.24 python3.9dist(oslo-upgradecheck) >= 1.3 python3.9dist(oslo-utils) >= 8 python3.9dist(oslo-versionedobjects) >= 1.31.2 python3.9dist(osprofiler) >= 1.5 python3.9dist(pbr) >= 6 python3.9dist(pecan) >= 1 python3.9dist(psutil) >= 3.2.2 python3.9dist(pycdlib) >= 1.11 python3.9dist(pyyaml) python3.9dist(requests) >= 2.18 python3.9dist(rfc3986) >= 1.2 python3.9dist(sqlalchemy) >= 1.4 python3.9dist(stevedore) >= 1.29 python3.9dist(sushy) >= 4.8 python3.9dist(tenacity) >= 6.3.1 python3.9dist(tooz) >= 2.7 python3.9dist(webob) >= 1.7.1 python3.9dist(websockify) >= 0.9 python3.9dist(zeroconf) >= 0.24 Recommends: 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 Suggests: python3-oslo-i18n >= 3.15.3 python3-oslo-reports >= 1.18.0 Processing files: openstack-ironic-api-29.1.0-0.20250522181724.3387a8f.el9.noarch Provides: openstack-ironic-api = 1:29.1.0-0.20250522181724.3387a8f.el9 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 Processing files: openstack-ironic-conductor-29.1.0-0.20250522181724.3387a8f.el9.noarch Provides: openstack-ironic-conductor = 1:29.1.0-0.20250522181724.3387a8f.el9 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 Processing files: openstack-ironic-novncproxy-29.1.0-0.20250522181724.3387a8f.el9.noarch Provides: openstack-ironic-novncproxy = 1:29.1.0-0.20250522181724.3387a8f.el9 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 Processing files: openstack-ironic-dnsmasq-tftp-server-29.1.0-0.20250522181724.3387a8f.el9.noarch Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.zaczRn + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server + cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.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.20250522181724.3387a8f.el9 openstack-ironic-dnsmasq-tftp-server = 1:29.1.0-0.20250522181724.3387a8f.el9 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 Processing files: openstack-ironic-pxe-filter-29.1.0-0.20250522181724.3387a8f.el9.noarch Provides: openstack-ironic-pxe-filter = 1:29.1.0-0.20250522181724.3387a8f.el9 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 Processing files: python3-ironic-tests-29.1.0-0.20250522181724.3387a8f.el9.noarch Provides: python-ironic-tests = 1:29.1.0-0.20250522181724.3387a8f.el9 python3-ironic-tests = 1:29.1.0-0.20250522181724.3387a8f.el9 python3.9-ironic-tests = 1:29.1.0-0.20250522181724.3387a8f.el9 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.9 Obsoletes: python39-ironic-tests < 1:29.1.0-0.20250522181724.3387a8f.el9 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.src.rpm Wrote: /builddir/build/RPMS/openstack-ironic-dnsmasq-tftp-server-29.1.0-0.20250522181724.3387a8f.el9.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-api-29.1.0-0.20250522181724.3387a8f.el9.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-pxe-filter-29.1.0-0.20250522181724.3387a8f.el9.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-novncproxy-29.1.0-0.20250522181724.3387a8f.el9.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-conductor-29.1.0-0.20250522181724.3387a8f.el9.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-common-29.1.0-0.20250522181724.3387a8f.el9.noarch.rpm Wrote: /builddir/build/RPMS/python3-ironic-tests-29.1.0-0.20250522181724.3387a8f.el9.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.bHAM0X + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev120 + /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250522181724.3387a8f.el9.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Child return code was: 0