Mock Version: 6.2
Mock Version: 6.2
Mock Version: 6.2
Mock Version: 6.2
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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7fae4c6b35e0>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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\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.20250604214718.1c3dde2.el9.src.rpm
Child return code was: 0
Mock Version: 6.2
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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7f950f3335e0>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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\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.20250604214718.1c3dde2.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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7f950f3335e0>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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\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.mS2okA
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf ironic-29.1.0.dev159
+ /usr/bin/gzip -dc /builddir/build/SOURCES/ironic-29.1.0.dev159-0.20250604214718.1c3dde2.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd ironic-29.1.0.dev159
+ /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 '<rpm-build>'
+ /usr/bin/git config gc.auto 0
+ /usr/bin/git add --force .
+ /usr/bin/git commit -q --allow-empty -a --author 'rpm-build <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.xvMtGX
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ 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.dev159/.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.dev159/.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.dev159/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7f950f3335e0>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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\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.w8vN9k
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ 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.dev159/.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.dev159/.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.dev159/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7f950f3335e0>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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\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.BEBQzZ
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ 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.dev159/.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.dev159/.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.dev159/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.8.0)
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 9.0.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.dev159/ironic-29.1.0.dev159.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.8.0)
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 9.0.0)
Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: osprofiler (>=1.5.0)
Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: os-traits (>=0.4.0)
Handling pecan (>=1.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: pecan (>=1.0.0)
Handling pycdlib (>=1.11.0) from hook generated metadata: Requires-Dist (ironic)
Requirement not satisfied: pycdlib (>=1.11.0)
Handling requests (>=2.18.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: requests (>=2.18.0)
   (installed: requests 2.32.3)
Handling rfc3986 (>=1.2.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: rfc3986 (>=1.2.0)
   (installed: rfc3986 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.20250604214718.1c3dde2.el9.x86_64-pyproject-buildrequires
+ rm -rfv ironic-29.1.0.dev159.dist-info/
removed 'ironic-29.1.0.dev159.dist-info/AUTHORS'
removed 'ironic-29.1.0.dev159.dist-info/LICENSE'
removed 'ironic-29.1.0.dev159.dist-info/METADATA'
removed 'ironic-29.1.0.dev159.dist-info/entry_points.txt'
removed 'ironic-29.1.0.dev159.dist-info/pbr.json'
removed 'ironic-29.1.0.dev159.dist-info/top_level.txt'
removed directory 'ironic-29.1.0.dev159.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7f950f3335e0>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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\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.ugsHtz
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ 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.dev159/.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.dev159/.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.dev159/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.11.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.8.0)
Handling oslo.context>=2.22.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.context>=2.22.0
   (installed: oslo.context 6.0.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 satisfied: oslo.rootwrap>=5.8.0
   (installed: oslo.rootwrap 7.6.0)
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 9.0.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.10.0)
Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.messaging>=14.1.0
   (installed: oslo.messaging 17.0.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.7.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.dev159/ironic-29.1.0.dev159.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.11.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.8.0)
Handling oslo.context (>=2.22.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.context (>=2.22.0)
   (installed: oslo.context 6.0.0)
Handling oslo.db (>=9.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.db (>=9.1.0)
   (installed: oslo.db 17.2.1)
Handling oslo.rootwrap (>=5.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.rootwrap (>=5.8.0)
   (installed: oslo.rootwrap 7.6.0)
Handling oslo.log (>=4.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.log (>=4.3.0)
   (installed: oslo.log 7.1.0)
Handling oslo.middleware (>=3.31.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.middleware (>=3.31.0)
   (installed: oslo.middleware 6.5.0)
Handling oslo.policy (>=4.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.policy (>=4.5.0)
   (installed: oslo.policy 4.5.1)
Handling oslo.serialization (>=2.25.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.serialization (>=2.25.0)
   (installed: oslo.serialization 5.7.0)
Handling oslo.service (>=1.24.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.service (>=1.24.0)
   (installed: oslo.service 4.1.1)
Handling oslo.upgradecheck (>=1.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.upgradecheck (>=1.3.0)
   (installed: oslo.upgradecheck 2.5.0)
Handling oslo.utils (>=8.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.utils (>=8.0.0)
   (installed: oslo.utils 9.0.0)
Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: osprofiler (>=1.5.0)
   (installed: osprofiler 4.2.0)
Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: os-traits (>=0.4.0)
   (installed: os-traits 3.5.0)
Handling pecan (>=1.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: pecan (>=1.0.0)
   (installed: pecan 1.5.1)
Handling pycdlib (>=1.11.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: pycdlib (>=1.11.0)
   (installed: pycdlib 1.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.10.0)
Handling oslo.messaging (>=14.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.messaging (>=14.1.0)
   (installed: oslo.messaging 17.0.0)
Handling tenacity (>=6.3.1) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: tenacity (>=6.3.1)
   (installed: tenacity 8.2.3)
Handling oslo.versionedobjects (>=1.31.2) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.versionedobjects (>=1.31.2)
   (installed: oslo.versionedobjects 3.7.0)
Handling jsonschema (>=4.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: jsonschema (>=4.0.0)
   (installed: jsonschema 4.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.20250604214718.1c3dde2.el9.x86_64-pyproject-buildrequires
+ rm -rfv ironic-29.1.0.dev159.dist-info/
removed 'ironic-29.1.0.dev159.dist-info/LICENSE'
removed 'ironic-29.1.0.dev159.dist-info/AUTHORS'
removed 'ironic-29.1.0.dev159.dist-info/METADATA'
removed 'ironic-29.1.0.dev159.dist-info/top_level.txt'
removed 'ironic-29.1.0.dev159.dist-info/pbr.json'
removed 'ironic-29.1.0.dev159.dist-info/entry_points.txt'
removed directory 'ironic-29.1.0.dev159.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7f950f3335e0>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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\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.IDDRLe
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ 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.dev159/.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.dev159/.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.dev159/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.11.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.8.0)
Handling oslo.context>=2.22.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.context>=2.22.0
   (installed: oslo.context 6.0.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 satisfied: oslo.rootwrap>=5.8.0
   (installed: oslo.rootwrap 7.6.0)
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 9.0.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.10.0)
Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py39
Requirement satisfied: oslo.messaging>=14.1.0
   (installed: oslo.messaging 17.0.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.7.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.dev159/ironic-29.1.0.dev159.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.11.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.8.0)
Handling oslo.context (>=2.22.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.context (>=2.22.0)
   (installed: oslo.context 6.0.0)
Handling oslo.db (>=9.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.db (>=9.1.0)
   (installed: oslo.db 17.2.1)
Handling oslo.rootwrap (>=5.8.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.rootwrap (>=5.8.0)
   (installed: oslo.rootwrap 7.6.0)
Handling oslo.log (>=4.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.log (>=4.3.0)
   (installed: oslo.log 7.1.0)
Handling oslo.middleware (>=3.31.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.middleware (>=3.31.0)
   (installed: oslo.middleware 6.5.0)
Handling oslo.policy (>=4.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.policy (>=4.5.0)
   (installed: oslo.policy 4.5.1)
Handling oslo.serialization (>=2.25.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.serialization (>=2.25.0)
   (installed: oslo.serialization 5.7.0)
Handling oslo.service (>=1.24.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.service (>=1.24.0)
   (installed: oslo.service 4.1.1)
Handling oslo.upgradecheck (>=1.3.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.upgradecheck (>=1.3.0)
   (installed: oslo.upgradecheck 2.5.0)
Handling oslo.utils (>=8.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.utils (>=8.0.0)
   (installed: oslo.utils 9.0.0)
Handling osprofiler (>=1.5.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: osprofiler (>=1.5.0)
   (installed: osprofiler 4.2.0)
Handling os-traits (>=0.4.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: os-traits (>=0.4.0)
   (installed: os-traits 3.5.0)
Handling pecan (>=1.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: pecan (>=1.0.0)
   (installed: pecan 1.5.1)
Handling pycdlib (>=1.11.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: pycdlib (>=1.11.0)
   (installed: pycdlib 1.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.10.0)
Handling oslo.messaging (>=14.1.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.messaging (>=14.1.0)
   (installed: oslo.messaging 17.0.0)
Handling tenacity (>=6.3.1) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: tenacity (>=6.3.1)
   (installed: tenacity 8.2.3)
Handling oslo.versionedobjects (>=1.31.2) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: oslo.versionedobjects (>=1.31.2)
   (installed: oslo.versionedobjects 3.7.0)
Handling jsonschema (>=4.0.0) from hook generated metadata: Requires-Dist (ironic)
Requirement satisfied: jsonschema (>=4.0.0)
   (installed: jsonschema 4.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.20250604214718.1c3dde2.el9.x86_64-pyproject-buildrequires
+ rm -rfv ironic-29.1.0.dev159.dist-info/
removed 'ironic-29.1.0.dev159.dist-info/LICENSE'
removed 'ironic-29.1.0.dev159.dist-info/AUTHORS'
removed 'ironic-29.1.0.dev159.dist-info/METADATA'
removed 'ironic-29.1.0.dev159.dist-info/entry_points.txt'
removed 'ironic-29.1.0.dev159.dist-info/pbr.json'
removed 'ironic-29.1.0.dev159.dist-info/top_level.txt'
removed directory 'ironic-29.1.0.dev159.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.VroSh5
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev159/.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.dev159/.pyproject-builddir
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/ironic-29.1.0.dev159/pyproject-wheeldir
Processing /builddir/build/BUILD/ironic-29.1.0.dev159
  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.dev159/.pyproject-builddir/tmpske0ye4u
  /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.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/ironic.egg-info
  writing /builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/ironic.egg-info/PKG-INFO
  writing dependency_links to /builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/ironic.egg-info/dependency_links.txt
  writing entry points to /builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/ironic.egg-info/entry_points.txt
  writing requirements to /builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/ironic.egg-info/requires.txt
  writing top-level names to /builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/ironic.egg-info/top_level.txt
  writing pbr to /builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/ironic.egg-info/pbr.json
  [pbr] Processing SOURCES.txt
  writing manifest file '/builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/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.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/ironic.egg-info/SOURCES.txt'
  creating '/builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir/pip-modern-metadata-sbo89ner/ironic-29.1.0.dev159.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.dev159/.pyproject-builddir/tmpomi12m5l
  /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/db
  copying ironic/db/migration.py -> build/lib/ironic/db
  copying ironic/db/api.py -> build/lib/ironic/db
  copying ironic/db/__init__.py -> build/lib/ironic/db
  creating build/lib/ironic/tests
  creating build/lib/ironic/tests/unit
  creating build/lib/ironic/tests/unit/conf
  copying ironic/tests/unit/conf/test_types.py -> build/lib/ironic/tests/unit/conf
  copying ironic/tests/unit/conf/test_conductor.py -> build/lib/ironic/tests/unit/conf
  copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf
  copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf
  creating build/lib/ironic/tests/unit/drivers
  creating build/lib/ironic/tests/unit/drivers/modules
  creating build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  copying ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  copying ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  copying ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  copying ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/intel_ipmi
  creating build/lib/ironic/tests/unit/console
  creating build/lib/ironic/tests/unit/console/securityproxy
  copying ironic/tests/unit/console/securityproxy/test_websocketproxy.py -> build/lib/ironic/tests/unit/console/securityproxy
  copying ironic/tests/unit/console/securityproxy/test_rfb.py -> build/lib/ironic/tests/unit/console/securityproxy
  copying ironic/tests/unit/console/securityproxy/__init__.py -> build/lib/ironic/tests/unit/console/securityproxy
  creating build/lib/ironic/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/functional
  copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional
  creating build/lib/ironic/drivers
  copying ironic/drivers/utils.py -> build/lib/ironic/drivers
  copying ironic/drivers/snmp.py -> build/lib/ironic/drivers
  copying ironic/drivers/redfish.py -> build/lib/ironic/drivers
  copying ironic/drivers/irmc.py -> build/lib/ironic/drivers
  copying ironic/drivers/ipmi.py -> build/lib/ironic/drivers
  copying ironic/drivers/intel_ipmi.py -> build/lib/ironic/drivers
  copying ironic/drivers/ilo.py -> build/lib/ironic/drivers
  copying ironic/drivers/hardware_type.py -> build/lib/ironic/drivers
  copying ironic/drivers/generic.py -> build/lib/ironic/drivers
  copying ironic/drivers/fake_hardware.py -> build/lib/ironic/drivers
  copying ironic/drivers/drac.py -> build/lib/ironic/drivers
  copying ironic/drivers/base.py -> build/lib/ironic/drivers
  copying ironic/drivers/__init__.py -> build/lib/ironic/drivers
  creating build/lib/ironic/drivers/modules
  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/tests/unit/api
  creating build/lib/ironic/tests/unit/api/controllers
  copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers
  copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers
  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/common/json_rpc
  copying ironic/common/json_rpc/server.py -> build/lib/ironic/common/json_rpc
  copying ironic/common/json_rpc/client.py -> build/lib/ironic/common/json_rpc
  copying ironic/common/json_rpc/__init__.py -> build/lib/ironic/common/json_rpc
  creating build/lib/ironic/tests/unit/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/api
  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
  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/wsgi
  copying ironic/wsgi/__init__.py -> build/lib/ironic/wsgi
  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/console
  creating build/lib/ironic/console/container
  copying ironic/console/container/systemd.py -> build/lib/ironic/console/container
  copying ironic/console/container/fake.py -> build/lib/ironic/console/container
  copying ironic/console/container/base.py -> build/lib/ironic/console/container
  copying ironic/console/container/__init__.py -> build/lib/ironic/console/container
  creating build/lib/ironic/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/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/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/irmc
  copying ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/irmc
  copying ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/irmc
  copying ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/irmc
  copying ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/irmc
  copying ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/irmc
  copying ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/irmc
  copying ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/irmc
  copying ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/irmc
  copying ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/irmc
  creating build/lib/ironic/tests/unit/api/validation
  copying ironic/tests/unit/api/validation/test_validators.py -> build/lib/ironic/tests/unit/api/validation
  copying ironic/tests/unit/api/validation/__init__.py -> build/lib/ironic/tests/unit/api/validation
  creating build/lib/ironic/tests/unit/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/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/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/pxe_filter
  copying ironic/tests/unit/pxe_filter/test_service.py -> build/lib/ironic/tests/unit/pxe_filter
  copying ironic/tests/unit/pxe_filter/test_dnsmasq.py -> build/lib/ironic/tests/unit/pxe_filter
  copying ironic/tests/unit/pxe_filter/__init__.py -> build/lib/ironic/tests/unit/pxe_filter
  creating build/lib/ironic/tests/unit/api/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/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
  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/tests/unit/drivers/modules/ansible
  copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible
  copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible
  creating build/lib/ironic/tests/unit/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/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/vendor.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/raid.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/power.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/management.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/inspect.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/console.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/common.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/boot.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/bios.py -> build/lib/ironic/drivers/modules/ilo
  copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo
  creating build/lib/ironic/console/securityproxy
  copying ironic/console/securityproxy/rfb.py -> build/lib/ironic/console/securityproxy
  copying ironic/console/securityproxy/base.py -> build/lib/ironic/console/securityproxy
  copying ironic/console/securityproxy/__init__.py -> build/lib/ironic/console/securityproxy
  creating build/lib/ironic/tests/unit/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/conf
  copying ironic/conf/vnc.py -> build/lib/ironic/conf
  copying ironic/conf/types.py -> build/lib/ironic/conf
  copying ironic/conf/swift.py -> build/lib/ironic/conf
  copying ironic/conf/snmp.py -> build/lib/ironic/conf
  copying ironic/conf/service_catalog.py -> build/lib/ironic/conf
  copying ironic/conf/sensor_data.py -> build/lib/ironic/conf
  copying ironic/conf/redfish.py -> build/lib/ironic/conf
  copying ironic/conf/pxe.py -> build/lib/ironic/conf
  copying ironic/conf/opts.py -> build/lib/ironic/conf
  copying ironic/conf/oci.py -> build/lib/ironic/conf
  copying ironic/conf/nova.py -> build/lib/ironic/conf
  copying ironic/conf/neutron.py -> build/lib/ironic/conf
  copying ironic/conf/molds.py -> build/lib/ironic/conf
  copying ironic/conf/metrics.py -> build/lib/ironic/conf
  copying ironic/conf/mdns.py -> build/lib/ironic/conf
  copying ironic/conf/json_rpc.py -> build/lib/ironic/conf
  copying ironic/conf/irmc.py -> build/lib/ironic/conf
  copying ironic/conf/ipmi.py -> build/lib/ironic/conf
  copying ironic/conf/inventory.py -> build/lib/ironic/conf
  copying ironic/conf/inspector.py -> build/lib/ironic/conf
  copying ironic/conf/ilo.py -> build/lib/ironic/conf
  copying ironic/conf/healthcheck.py -> build/lib/ironic/conf
  copying ironic/conf/glance.py -> build/lib/ironic/conf
  copying ironic/conf/fake.py -> build/lib/ironic/conf
  copying ironic/conf/exception.py -> build/lib/ironic/conf
  copying ironic/conf/drac.py -> build/lib/ironic/conf
  copying ironic/conf/dnsmasq.py -> build/lib/ironic/conf
  copying ironic/conf/disk_utils.py -> build/lib/ironic/conf
  copying ironic/conf/dhcp.py -> build/lib/ironic/conf
  copying ironic/conf/deploy.py -> build/lib/ironic/conf
  copying ironic/conf/default.py -> build/lib/ironic/conf
  copying ironic/conf/database.py -> build/lib/ironic/conf
  copying ironic/conf/console.py -> build/lib/ironic/conf
  copying ironic/conf/conductor.py -> build/lib/ironic/conf
  copying ironic/conf/cinder.py -> build/lib/ironic/conf
  copying ironic/conf/auth.py -> build/lib/ironic/conf
  copying ironic/conf/audit.py -> build/lib/ironic/conf
  copying ironic/conf/api.py -> build/lib/ironic/conf
  copying ironic/conf/ansible.py -> build/lib/ironic/conf
  copying ironic/conf/anaconda.py -> build/lib/ironic/conf
  copying ironic/conf/agent_containers.py -> build/lib/ironic/conf
  copying ironic/conf/agent.py -> build/lib/ironic/conf
  copying ironic/conf/__init__.py -> build/lib/ironic/conf
  creating build/lib/ironic/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/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/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/tests/unit/drivers/modules/storage
  copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage
  copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage
  copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage
  creating build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy
  copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy
  creating build/lib/ironic/api/validation
  copying ironic/api/validation/validators.py -> build/lib/ironic/api/validation
  copying ironic/api/validation/__init__.py -> build/lib/ironic/api/validation
  creating build/lib/ironic/api/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/tests/unit/dhcp
  copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp
  copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp
  copying ironic/tests/unit/dhcp/test_dnsmasq.py -> build/lib/ironic/tests/unit/dhcp
  copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp
  creating build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_volume_connector.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_trait.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_portgroup.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_port.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_objects.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_notification.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_node_inventory.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_node_history.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_node.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_firmware.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_fields.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_deployment.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_deploy_template.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_conductor.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/test_allocation.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects
  copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_proxy_middleware.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_method.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_functions.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api
  creating build/lib/ironic/tests/unit/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/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/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
  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
  copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers
  copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers
  copying ironic/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/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
  copying ironic/tests/unit/console/__init__.py -> build/lib/ironic/tests/unit/console
  creating build/lib/ironic/drivers/modules/inspector
  creating build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/validate_interfaces.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/root_device.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/ramdisk_error.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/raid_device.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/ports.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/physical_network.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/pci_devices.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/parse_lldp.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/memory.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/local_link_connection.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/extra_hardware.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/cpu_capabilities.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/boot_mode.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/base.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/architecture.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/accelerators.py -> build/lib/ironic/drivers/modules/inspector/hooks
  copying ironic/drivers/modules/inspector/hooks/__init__.py -> build/lib/ironic/drivers/modules/inspector/hooks
  creating build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/tests/unit/drivers/modules/ibmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ibmc
  copying ironic/version.py -> build/lib/ironic
  copying ironic/__init__.py -> build/lib/ironic
  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
  copying ironic/tests/base.py -> build/lib/ironic/tests
  copying ironic/tests/__init__.py -> build/lib/ironic/tests
  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
  copying ironic/api/wsgi.py -> build/lib/ironic/api
  copying ironic/api/method.py -> build/lib/ironic/api
  copying ironic/api/hooks.py -> build/lib/ironic/api
  copying ironic/api/functions.py -> build/lib/ironic/api
  copying ironic/api/config.py -> build/lib/ironic/api
  copying ironic/api/app.py -> build/lib/ironic/api
  copying ironic/api/__init__.py -> build/lib/ironic/api
  creating build/lib/ironic/drivers/modules/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/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
  copying ironic/tests/unit/drivers/modules/test_snmp.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_ramdisk.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_pxe.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_ipxe.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_image_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_image_cache.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_graphical_console.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent_power.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent_base.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules
  copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules
  creating build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy
  copying ironic/drivers/modules/inspector/lldp_tlvs.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/lldp_parsers.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/interface.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/client.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/agent.py -> build/lib/ironic/drivers/modules/inspector
  copying ironic/drivers/modules/inspector/__init__.py -> build/lib/ironic/drivers/modules/inspector
  creating build/lib/ironic/common/glance_service
  copying ironic/common/glance_service/service_utils.py -> build/lib/ironic/common/glance_service
  copying ironic/common/glance_service/image_service.py -> build/lib/ironic/common/glance_service
  copying ironic/common/glance_service/__init__.py -> build/lib/ironic/common/glance_service
  creating build/lib/ironic/tests/unit/console/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/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/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/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
  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/common/grub_conf.template -> build/lib/ironic/common
  copying ironic/common/isolinux_config.template -> build/lib/ironic/common
  copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers
  copying ironic/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1
  copying ironic/console/container/ironic-console.container.template -> build/lib/ironic/console/container
  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/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/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/tests/unit/api/test_acl_basic.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_rbac_legacy.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/lib/ironic/tests/unit/api
  copying ironic/drivers/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/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/lib/ironic/drivers/modules/inspector/hooks
  creating build/lib/ironic/tests/json_samples
  copying ironic/tests/json_samples/network_data.json -> build/lib/ironic/tests/json_samples
  copying ironic/tests/json_samples/systems_collection_dual.json -> build/lib/ironic/tests/json_samples
  copying ironic/tests/json_samples/systems_collection_single.json -> build/lib/ironic/tests/json_samples
  creating build/lib/ironic/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/api/schemas
  creating build/lib/ironic/api/schemas/v1
  copying ironic/api/schemas/v1/firmware.py -> build/lib/ironic/api/schemas/v1
  copying ironic/api/schemas/v1/shard.py -> build/lib/ironic/api/schemas/v1
  installing to build/bdist.linux-x86_64/wheel
  running install
  [pbr] Writing ChangeLog
  [pbr] Generating ChangeLog
  [pbr] ChangeLog complete (0.0s)
  [pbr] Generating AUTHORS
  [pbr] AUTHORS complete (0.0s)
  running install_lib
  creating build/bdist.linux-x86_64
  creating build/bdist.linux-x86_64/wheel
  creating build/bdist.linux-x86_64/wheel/ironic
  creating build/bdist.linux-x86_64/wheel/ironic/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/pxe_filter
  copying build/lib/ironic/pxe_filter/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/pxe_filter/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/pxe_filter/service.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter
  copying build/lib/ironic/__init__.py -> build/bdist.linux-x86_64/wheel/ironic
  copying build/lib/ironic/version.py -> build/bdist.linux-x86_64/wheel/ironic
  creating build/bdist.linux-x86_64/wheel/ironic/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/command
  copying build/lib/ironic/command/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/api.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/conductor.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/dbsync.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/novncproxy.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/pxe_filter.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/singleprocess.py -> build/bdist.linux-x86_64/wheel/ironic/command
  copying build/lib/ironic/command/status.py -> build/bdist.linux-x86_64/wheel/ironic/command
  creating build/bdist.linux-x86_64/wheel/ironic/hacking
  copying build/lib/ironic/hacking/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/hacking
  copying build/lib/ironic/hacking/checks.py -> build/bdist.linux-x86_64/wheel/ironic/hacking
  creating build/bdist.linux-x86_64/wheel/ironic/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/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/console
  creating build/bdist.linux-x86_64/wheel/ironic/console/rfb
  copying build/lib/ironic/console/rfb/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb
  copying build/lib/ironic/console/rfb/auth.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb
  copying build/lib/ironic/console/rfb/authnone.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb
  copying build/lib/ironic/console/rfb/auths.py -> build/bdist.linux-x86_64/wheel/ironic/console/rfb
  copying build/lib/ironic/console/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console
  copying build/lib/ironic/console/novncproxy_service.py -> build/bdist.linux-x86_64/wheel/ironic/console
  copying build/lib/ironic/console/websocketproxy.py -> build/bdist.linux-x86_64/wheel/ironic/console
  creating build/bdist.linux-x86_64/wheel/ironic/console/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/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/wsgi
  copying build/lib/ironic/wsgi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/wsgi
  creating build/bdist.linux-x86_64/wheel/ironic/api
  creating build/bdist.linux-x86_64/wheel/ironic/api/schemas
  creating build/bdist.linux-x86_64/wheel/ironic/api/schemas/v1
  copying build/lib/ironic/api/schemas/v1/shard.py -> build/bdist.linux-x86_64/wheel/ironic/api/schemas/v1
  copying build/lib/ironic/api/schemas/v1/firmware.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/middleware
  copying build/lib/ironic/api/middleware/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware
  copying build/lib/ironic/api/middleware/auth_public_routes.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware
  copying build/lib/ironic/api/middleware/json_ext.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware
  copying build/lib/ironic/api/middleware/parsable_error.py -> build/bdist.linux-x86_64/wheel/ironic/api/middleware
  creating build/bdist.linux-x86_64/wheel/ironic/api/validation
  copying build/lib/ironic/api/validation/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/api/validation
  copying build/lib/ironic/api/validation/validators.py -> build/bdist.linux-x86_64/wheel/ironic/api/validation
  creating build/bdist.linux-x86_64/wheel/ironic/api/controllers
  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/drivers
  copying build/lib/ironic/drivers/raid_config_schema.json -> build/bdist.linux-x86_64/wheel/ironic/drivers
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/pxe_grub_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/pxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/ks.cfg.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/ipxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/initial_grub_cfg.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  copying build/lib/ironic/drivers/modules/boot.ipxe -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/drac
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/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/ansible
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/deploy/files
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults
  copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  copying build/lib/ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  copying build/lib/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  copying build/lib/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/library
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks/callback_plugins
  copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/inventory -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible/playbooks
  copying build/lib/ironic/drivers/modules/ansible/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible
  copying build/lib/ironic/drivers/modules/ansible/deploy.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ansible
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/agent.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/client.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/interface.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/lldp_parsers.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  copying build/lib/ironic/drivers/modules/inspector/lldp_tlvs.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/architecture.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/memory.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/ports.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/root_device.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  copying build/lib/ironic/drivers/modules/inspector/hooks/validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/inspector/hooks
  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/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/ilo
  copying build/lib/ironic/drivers/modules/ilo/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/common.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/console.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  copying build/lib/ironic/drivers/modules/ilo/vendor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/ilo
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/bios.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/boot.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/firmware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/firmware_utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/graphical_console.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/inspect.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/management.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/power.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/raid.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  copying build/lib/ironic/drivers/modules/redfish/vendor.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/redfish
  creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/external.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/modules/storage/noop.py -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules/storage
  copying build/lib/ironic/drivers/__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/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/inspection_rules
  copying build/lib/ironic/common/inspection_rules/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/actions.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/base.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/engine.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/operators.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/utils.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  copying build/lib/ironic/common/inspection_rules/validation.py -> build/bdist.linux-x86_64/wheel/ironic/common/inspection_rules
  creating build/bdist.linux-x86_64/wheel/ironic/common/json_rpc
  copying build/lib/ironic/common/json_rpc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc
  copying build/lib/ironic/common/json_rpc/client.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc
  copying build/lib/ironic/common/json_rpc/server.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc
  copying build/lib/ironic/common/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/args.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/async_steps.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/auth_basic.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/boot_devices.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/boot_modes.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/checksum_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/components.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/config.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/console_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/context.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/dhcp_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/driver_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/exception.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/faults.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/fsm.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/hash_ring.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/i18n.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/image_publisher.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/images.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/indicator_states.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/keystone.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/kickstart_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/lessee_sources.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/mdns.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/metrics.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/metrics_collector.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/metrics_statsd.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/metrics_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/molds.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/network.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/nova.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/oci_registry.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/policy.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/profiler.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/pxe_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/qemu_img.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/raid.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/release_mappings.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/rpc.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/rpc_service.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/service.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/states.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/swift.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/utils.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/vnc.py -> build/bdist.linux-x86_64/wheel/ironic/common
  copying build/lib/ironic/common/wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/common
  creating build/bdist.linux-x86_64/wheel/ironic/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
  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/functional
  copying build/lib/ironic/tests/functional/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/functional
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit
  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/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/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/pxe_filter
  copying build/lib/ironic/tests/unit/pxe_filter/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter
  copying build/lib/ironic/tests/unit/pxe_filter/test_dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter
  copying build/lib/ironic/tests/unit/pxe_filter/test_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/pxe_filter
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_cleaning.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_deployments.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_inspection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_periodics.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_rpc_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_servicing.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_steps.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_task_manager.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  copying build/lib/ironic/tests/unit/conductor/test_verify.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conductor
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/drive_samples
  copying build/lib/ironic/tests/unit/common/drive_samples/config_drive -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/drive_samples
  copying build/lib/ironic/tests/unit/common/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_args.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_checksum_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_cinder.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_context.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_exception.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_fsm.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_glance_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_image_publisher.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_image_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_images.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_json_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_keystone.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_kickstart_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_mdns.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_molds.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_network.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_neutron.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_nova.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_oci_registry.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_policy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_qemu_img.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_states.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_swift.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_vnc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common
  copying build/lib/ironic/tests/unit/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit
  copying build/lib/ironic/tests/unit/policy_fixture.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit
  copying build/lib/ironic/tests/unit/raid_constants.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit
  copying build/lib/ironic/tests/unit/stubs.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit
  copying build/lib/ironic/tests/unit/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_rbac_legacy.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_acl_basic.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_acl.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_audit.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_functions.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_hooks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_method.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_proxy_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/test_root.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  copying build/lib/ironic/tests/unit/api/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation
  copying build/lib/ironic/tests/unit/api/validation/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation
  copying build/lib/ironic/tests/unit/api/validation/test_validators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_collection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_driver.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_event.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_node.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_port.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_root.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_runbook.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_shard.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_versions.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers/v1
  copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers
  copying build/lib/ironic/tests/unit/api/controllers/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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
  copying build/lib/ironic/tests/unit/console/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb
  copying build/lib/ironic/tests/unit/console/rfb/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb
  copying build/lib/ironic/tests/unit/console/rfb/test_auth.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb
  copying build/lib/ironic/tests/unit/console/rfb/test_authnone.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/rfb
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy
  copying build/lib/ironic/tests/unit/console/securityproxy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy
  copying build/lib/ironic/tests/unit/console/securityproxy/test_rfb.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy
  copying build/lib/ironic/tests/unit/console/securityproxy/test_websocketproxy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/console/securityproxy
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/pxe_grub_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/ipxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/boot.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/boot-fallback.ipxe -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_drac.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_fake_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_generic.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_ilo.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_irmc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_redfish.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_snmp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  copying build/lib/ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  copying build/lib/ironic/tests/unit/drivers/modules/drac/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/drac
  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/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/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/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/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/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector
  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
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ilo
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi
  creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  copying build/lib/ironic/tests/unit/conf/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  copying build/lib/ironic/tests/unit/conf/test_auth.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  copying build/lib/ironic/tests/unit/conf/test_conductor.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  copying build/lib/ironic/tests/unit/conf/test_types.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/conf
  creating build/bdist.linux-x86_64/wheel/ironic/db
  creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  creating build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic/versions
  copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  copying build/lib/ironic/db/sqlalchemy/alembic/README -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy/alembic
  copying build/lib/ironic/db/sqlalchemy/alembic.ini -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/api.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/sqlalchemy/models.py -> build/bdist.linux-x86_64/wheel/ironic/db/sqlalchemy
  copying build/lib/ironic/db/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/db
  copying build/lib/ironic/db/api.py -> build/bdist.linux-x86_64/wheel/ironic/db
  copying build/lib/ironic/db/migration.py -> build/bdist.linux-x86_64/wheel/ironic/db
  running install_data
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/etc
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/etc/ironic
  copying etc/ironic/rootwrap.conf -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/etc/ironic
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/etc/ironic/rootwrap.d
  copying etc/ironic/rootwrap.d/ironic-utils.filters -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/etc/ironic/rootwrap.d/
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/share
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/share/ironic
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/share/ironic/vnc-container
  copying tools/vnc-container/README.rst -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/
  copying tools/vnc-container/Containerfile -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.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.dev159.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.dev159.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.dev159.data/data/share/ironic/vnc-container/bin
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/drivers
  creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.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.dev159.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.dev159.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.dev159-py3.9.egg-info
  running install_scripts
  Installing ironic-api-wsgi script to build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev159.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.dev159.dist-info/WHEEL
  creating '/builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir/pip-wheel-ui1n3xtn/tmpw92qsbna/ironic-29.1.0.dev159-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/firmware.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.dev159.data/data/etc/ironic/rootwrap.conf'
  adding 'ironic-29.1.0.dev159.data/data/etc/ironic/rootwrap.d/ironic-utils.filters'
  adding 'ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/Containerfile'
  adding 'ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/README.rst'
  adding 'ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/bin/start-browser-x11vnc.sh'
  adding 'ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/bin/start-selenium-browser.py'
  adding 'ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/bin/start-xvfb.sh'
  adding 'ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/drivers/fake/index.html'
  adding 'ironic-29.1.0.dev159.data/data/share/ironic/vnc-container/drivers/fake/ironic_mascot_color.png'
  adding 'ironic-29.1.0.dev159.data/scripts/ironic-api-wsgi'
  adding 'ironic-29.1.0.dev159.dist-info/AUTHORS'
  adding 'ironic-29.1.0.dev159.dist-info/LICENSE'
  adding 'ironic-29.1.0.dev159.dist-info/METADATA'
  adding 'ironic-29.1.0.dev159.dist-info/WHEEL'
  adding 'ironic-29.1.0.dev159.dist-info/entry_points.txt'
  adding 'ironic-29.1.0.dev159.dist-info/pbr.json'
  adding 'ironic-29.1.0.dev159.dist-info/top_level.txt'
  adding 'ironic-29.1.0.dev159.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.dev159-py3-none-any.whl size=2266619 sha256=0e5f398d614878993d151fa2f8a64ce4cdd7d4f239e8758641d97ca96d6d27d6
  Stored in directory: /builddir/.cache/pip/wheels/35/90/10/96ed22d4d2a147d477b64db7a98975f0bd2e5e4ffa5759478c
Successfully built ironic
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.aEyQoh
+ umask 022
+ cd /builddir/build/BUILD
+ '[' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64 '!=' / ']'
+ rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64
++ dirname /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64
+ mkdir -p /builddir/build/BUILDROOT
+ mkdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64
+ cd ironic-29.1.0.dev159
++ ls /builddir/build/BUILD/ironic-29.1.0.dev159/pyproject-wheeldir/ironic-29.1.0.dev159-py3-none-any.whl
++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/'
++ xargs basename --multiple
+ specifier=ironic==29.1.0.dev159
+ '[' -z ironic==29.1.0.dev159 ']'
+ TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev159/.pyproject-builddir
+ /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.dev159/pyproject-wheeldir ironic==29.1.0.dev159
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.dev159/pyproject-wheeldir
Processing ./pyproject-wheeldir/ironic-29.1.0.dev159-py3-none-any.whl
Installing collected packages: ironic
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-api to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-conductor to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-dbsync to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-novncproxy to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-pxe-filter to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-rootwrap to 755
  changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-status to 755
Successfully installed ironic-29.1.0.dev159
+ '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-api /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-api-wsgi /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-conductor /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-dbsync /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-novncproxy /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-pxe-filter /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-rootwrap /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-status
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-api: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-api-wsgi: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-conductor: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-dbsync: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-novncproxy: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-pxe-filter: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-rootwrap: updating
/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/ironic-status: updating
+ rm -rfv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/bin/__pycache__
+ rm -f /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64-pyproject-ghost-distinfo
+ site_dirs=()
+ '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.x86_64/usr/lib64/python3.9/site-packages '!=' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib/python3.9/site-packages ']'
+ '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.x86_64$site_dir/*.dist-info
+ echo '%ghost /usr/lib/python3.9/site-packages/ironic-29.1.0.dev159.dist-info'
+ sed -i s/pip/rpm/ /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev159.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.20250604214718.1c3dde2.el9.x86_64 --record /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev159.dist-info/RECORD --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64-pyproject-record
+ rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev159.dist-info/RECORD
removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev159.dist-info/RECORD'
+ rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev159.dist-info/REQUESTED
removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib/python3.9/site-packages/ironic-29.1.0.dev159.dist-info/REQUESTED'
++ wc -l /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64-pyproject-ghost-distinfo
++ cut -f1 '-d '
+ lines=1
+ '[' 1 -ne 1 ']'
+ install -p -D -m 644 /builddir/build/SOURCES/ironic.logrotate /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/etc/logrotate.d/openstack-ironic
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.x86_64/usr/lib/systemd/system
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.x86_64/etc/sudoers.d/ironic
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/var/lib/ironic/
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/var/log/ironic/
+ mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/etc/ironic/rootwrap.d
+ export PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64//usr/lib/python3.9/site-packages
+ PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64//etc/ironic/rootwrap.conf
+ mv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64//etc/ironic/rootwrap.d/
+ rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/etc/ironic/rootwrap.d
+ rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9 --unique-debug-suffix -29.1.0-0.20250604214718.1c3dde2.el9.x86_64 --unique-debug-src-base openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.dev159
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.20250604214718.1c3dde2.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.1fKGji
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ 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.20250604214718.1c3dde2.el9.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
+ PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib64/python3.9/site-packages:/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib/python3.9/site-packages
+ PYTHONDONTWRITEBYTECODE=1
+ PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ironic-29.1.0.dev159/.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-06-04 17:49:12.459 2495930 INFO oslo_service.backend [-] Loading backend: eventlet
2025-06-04 17:49:12.485 2495930 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached.
2025-06-04 17:49:12.698 2495936 INFO oslo_service.backend [-] Loading backend: eventlet
2025-06-04 17:49:12.705 2495936 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached.
2025-06-04 17:49:12.901 2495931 INFO oslo_service.backend [-] Loading backend: eventlet
2025-06-04 17:49:12.937 2495931 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached.
2025-06-04 17:49:12.958 2495932 INFO oslo_service.backend [-] Loading backend: eventlet
2025-06-04 17:49:12.994 2495932 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached.
{2} ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup [0.479329s] ... 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
{2} ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri [0.088546s] ... 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.TestPost.test_backfill [0.787440s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd0289dc2-f58a-4a40-a901-3c0e372bd555', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/d0289dc2-f58a-4a40-a901-3c0e372bd555
Openstack-Request-Id: req-e6733062-3f5f-4119-af8f-5dcd6bdf1a74
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d0289dc2-f58a-4a40-a901-3c0e372bd555", "created_at": "2025-06-04T21:49:23.189529+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/d0289dc2-f58a-4a40-a901-3c0e372bd555", "rel": "self"}, {"href": "http://localhost/allocations/d0289dc2-f58a-4a40-a901-3c0e372bd555", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/d0289dc2-f58a-4a40-a901-3c0e372bd555 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eb4cbc2d-ecd9-4b54-8782-bd57add0f93f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d0289dc2-f58a-4a40-a901-3c0e372bd555", "created_at": "2025-06-04T21:49:23.189529+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/d0289dc2-f58a-4a40-a901-3c0e372bd555", "rel": "self"}, {"href": "http://localhost/allocations/d0289dc2-f58a-4a40-a901-3c0e372bd555", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid [0.232344s] ... 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/17508129-ee6e-4a1d-a7ea-4ee40700edce
Openstack-Request-Id: req-22452b96-fb22-4f0c-929f-cf6b96c86bbe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "17508129-ee6e-4a1d-a7ea-4ee40700edce", "created_at": "2025-06-04T21:49:23.934257+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/17508129-ee6e-4a1d-a7ea-4ee40700edce", "rel": "self"}, {"href": "http://localhost/allocations/17508129-ee6e-4a1d-a7ea-4ee40700edce", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/17508129-ee6e-4a1d-a7ea-4ee40700edce WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a30c57d-5f97-4ed3-8d49-4171e3fca3d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "17508129-ee6e-4a1d-a7ea-4ee40700edce", "created_at": "2025-06-04T21:49:23.934257+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/17508129-ee6e-4a1d-a7ea-4ee40700edce", "rel": "self"}, {"href": "http://localhost/allocations/17508129-ee6e-4a1d-a7ea-4ee40700edce", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_node_not_found [0.185381s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '04c8256d-d925-4e02-9092-f6d002fc6400', 'owner': None, 'node': '2876231d-8870-4581-bd20-821fad6545e6'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c02a622d-3bc9-4291-a464-709db1b38b08
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 2876231d-8870-4581-bd20-821fad6545e6 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed [0.151840s] ... 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-6de5f100-5bc4-4ed0-8e81-eabf85649561
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.57
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot set node when creating an allocation in this API version\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name [0.239880s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '9f70988c-d56b-4590-99a7-8f02631a5002', 'owner': None, 'node': 'backfill-me'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/9f70988c-d56b-4590-99a7-8f02631a5002
Openstack-Request-Id: req-e22c3070-b618-4a30-bc25-927889b346a6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9f70988c-d56b-4590-99a7-8f02631a5002", "created_at": "2025-06-04T21:49:24.514669+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/9f70988c-d56b-4590-99a7-8f02631a5002", "rel": "self"}, {"href": "http://localhost/allocations/9f70988c-d56b-4590-99a7-8f02631a5002", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/9f70988c-d56b-4590-99a7-8f02631a5002 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d113a986-592e-425a-851d-1067ab87500a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9f70988c-d56b-4590-99a7-8f02631a5002", "created_at": "2025-06-04T21:49:24.514669+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/9f70988c-d56b-4590-99a7-8f02631a5002", "rel": "self"}, {"href": "http://localhost/allocations/9f70988c-d56b-4590-99a7-8f02631a5002", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class [0.162071s] ... 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/f7cec399-6849-4b1e-959e-36348b940fc8
Openstack-Request-Id: req-d2e1b09e-39e0-4527-ae86-0a4210961b84
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f7cec399-6849-4b1e-959e-36348b940fc8", "created_at": "2025-06-04T21:49:24.695484+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/f7cec399-6849-4b1e-959e-36348b940fc8", "rel": "self"}, {"href": "http://localhost/allocations/f7cec399-6849-4b1e-959e-36348b940fc8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/f7cec399-6849-4b1e-959e-36348b940fc8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dc32d10d-55bb-4a2c-8dd2-81335e8ace0e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f7cec399-6849-4b1e-959e-36348b940fc8", "created_at": "2025-06-04T21:49:24.695484+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/f7cec399-6849-4b1e-959e-36348b940fc8", "rel": "self"}, {"href": "http://localhost/allocations/f7cec399-6849-4b1e-959e-36348b940fc8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation [0.140839s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c404de7a-1bec-4a2d-90e2-22a6417e4dcf', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/c404de7a-1bec-4a2d-90e2-22a6417e4dcf
Openstack-Request-Id: req-281404c0-bdc0-4d5a-9b26-e3275b4c6b32
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c404de7a-1bec-4a2d-90e2-22a6417e4dcf", "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/c404de7a-1bec-4a2d-90e2-22a6417e4dcf", "rel": "self"}, {"href": "http://localhost/allocations/c404de7a-1bec-4a2d-90e2-22a6417e4dcf", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/c404de7a-1bec-4a2d-90e2-22a6417e4dcf WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d1d4fa4e-2b87-4d53-9f5e-8a9c2e84cc52
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c404de7a-1bec-4a2d-90e2-22a6417e4dcf", "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/c404de7a-1bec-4a2d-90e2-22a6417e4dcf", "rel": "self"}, {"href": "http://localhost/allocations/c404de7a-1bec-4a2d-90e2-22a6417e4dcf", "rel": "bookmark"}], "node_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.107070s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '1f17e604-1b5b-4587-b927-8bfd42dd00e4', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-73bd22cf-a33e-44e2-a3ee-93f6083b934c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.082436s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0c61149b-8203-43f8-ab20-b6402d9626d4', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-25305202-f6ea-45a2-804c-7c32e327a192
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.109808s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '9fde2e62-a9f3-4174-befb-52ca3daac318', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/9fde2e62-a9f3-4174-befb-52ca3daac318
Openstack-Request-Id: req-41cb6eb5-e346-4197-bafb-051e9c3464b8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9fde2e62-a9f3-4174-befb-52ca3daac318", "created_at": "2025-06-04T21:49:25.151003+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/9fde2e62-a9f3-4174-befb-52ca3daac318", "rel": "self"}, {"href": "http://localhost/allocations/9fde2e62-a9f3-4174-befb-52ca3daac318", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/9fde2e62-a9f3-4174-befb-52ca3daac318 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-16f3827a-49c0-4eaf-9d1c-7c68bce75006
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9fde2e62-a9f3-4174-befb-52ca3daac318", "created_at": "2025-06-04T21:49:25.151003+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/9fde2e62-a9f3-4174-befb-52ca3daac318", "rel": "self"}, {"href": "http://localhost/allocations/9fde2e62-a9f3-4174-befb-52ca3daac318", "rel": "bookmark"}], "node_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.093408s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8d23c78f-7efb-4037-9604-00c1bf4e44a0', 'owner': None} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-fea637ea-46da-4f6e-bd31-7303b0ff9a07
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.767601s] ... 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_id [0.778304s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/f40fc0ee-4e0e-4596-8ab6-0a1858d4e79c GOT Response: 204 No Content
Openstack-Request-Id: req-dbb27abf-5c00-4c58-ba0f-644109e7f836
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
Captured stderr:
~~~~~~~~~~~~~~~~
    INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Running stamp_revision  -> 1c14278d6e33
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.091452s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid [0.138431s] ... 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/b308e012-0a22-4cb5-a822-525773cb2dc2
Openstack-Request-Id: req-8c2eb766-cad5-40c5-ad8b-516ae8d91c71
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b308e012-0a22-4cb5-a822-525773cb2dc2", "created_at": "2025-06-04T21:49:25.397532+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/b308e012-0a22-4cb5-a822-525773cb2dc2", "rel": "self"}, {"href": "http://localhost/allocations/b308e012-0a22-4cb5-a822-525773cb2dc2", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/b308e012-0a22-4cb5-a822-525773cb2dc2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-573e4e68-d07b-40f3-8453-75006cd2f6d9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b308e012-0a22-4cb5-a822-525773cb2dc2", "created_at": "2025-06-04T21:49:25.397532+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/b308e012-0a22-4cb5-a822-525773cb2dc2", "rel": "self"}, {"href": "http://localhost/allocations/b308e012-0a22-4cb5-a822-525773cb2dc2", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.645134s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content
Openstack-Request-Id: req-ae87cbcc-1579-455e-860c-1b07ab101909
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9905b865-5748-48df-939a-97ca307a4484
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"}
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
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.082592s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.067885s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'cb3855f0-3f9f-4cf8-9f71-ee000ce8b4a8', 'owner': None} GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"}
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.092462s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.097390s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '871a9e09-e1ff-48f0-bfae-31d8b19a9043', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ba977d0a-067e-451f-b59a-0338aa4de655
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.093224s] ... ok
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.081464s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.130094s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': '39f695bc-b1d8-4e94-97e9-50a22165a860', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f989f57e-ce5c-478b-a4d3-ee42c2921dd4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'FOO_BAR' is not valid under any of the given schemas. Possible root cause: 'FOO_BAR' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.110964s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid [0.136900s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': '939db730-b15b-40f1-a9f5-bed8f188fd95', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d9789d8b-ea82-4158-8aa8-07c5346f0633
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.112635s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok [0.112079s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c3cb29db-1ad2-434d-97db-583e40e2956a', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/c3cb29db-1ad2-434d-97db-583e40e2956a
Openstack-Request-Id: req-218ef2dc-3d2f-401c-b530-bd7abb140776
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c3cb29db-1ad2-434d-97db-583e40e2956a", "created_at": "2025-06-04T21:49:25.970122+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/c3cb29db-1ad2-434d-97db-583e40e2956a", "rel": "self"}, {"href": "http://localhost/allocations/c3cb29db-1ad2-434d-97db-583e40e2956a", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/c3cb29db-1ad2-434d-97db-583e40e2956a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2380c84-113b-4e3d-9dbf-d15f81f2252e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c3cb29db-1ad2-434d-97db-583e40e2956a", "created_at": "2025-06-04T21:49:25.970122+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/c3cb29db-1ad2-434d-97db-583e40e2956a", "rel": "self"}, {"href": "http://localhost/allocations/c3cb29db-1ad2-434d-97db-583e40e2956a", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_new_standard_singular_header_ok [0.103011s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.115607s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '3173c06b-512d-4c46-a81b-1c7ec96c9d24', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1b3fe618-ffd2-48fc-ba2d-ff8af86ee4d8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.849288s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/alloc1 GOT Response: 204 No Content
Openstack-Request-Id: req-19b05afb-d43e-48b0-b641-062c31fc679c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.719717s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/46fc126d-da49-4fb6-85e2-0a0eb586e77e GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4999b339-f62c-42c2-b6db-4f1dc4f6d058
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 46fc126d-da49-4fb6-85e2-0a0eb586e77e could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner [0.115786s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'eebc2f7a-87d2-466d-a243-ca78f805d500', 'owner': '12345'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/eebc2f7a-87d2-466d-a243-ca78f805d500
Openstack-Request-Id: req-55a9a871-a948-44f9-b87d-676ad1629f6f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "eebc2f7a-87d2-466d-a243-ca78f805d500", "created_at": "2025-06-04T21:49:26.215191+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/eebc2f7a-87d2-466d-a243-ca78f805d500", "rel": "self"}, {"href": "http://localhost/allocations/eebc2f7a-87d2-466d-a243-ca78f805d500", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/eebc2f7a-87d2-466d-a243-ca78f805d500 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cefdec4e-17c4-4f2a-9dea-f7a5d29cc36c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "eebc2f7a-87d2-466d-a243-ca78f805d500", "created_at": "2025-06-04T21:49:26.215191+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/eebc2f7a-87d2-466d-a243-ca78f805d500", "rel": "self"}, {"href": "http://localhost/allocations/eebc2f7a-87d2-466d-a243-ca78f805d500", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.098029s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-aa671294-90b1-47fc-941e-dc2791174f3c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.125753s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-43f1f35a-000b-4786-8458-c4331c30e5d5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled [0.121475s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '38b695d9-e6b7-4b29-b931-d3389fbdf71c', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/38b695d9-e6b7-4b29-b931-d3389fbdf71c
Openstack-Request-Id: req-43c4023b-1a6c-4207-9d4e-247fd031483c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "38b695d9-e6b7-4b29-b931-d3389fbdf71c", "created_at": "2025-06-04T21:49:26.344087+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/38b695d9-e6b7-4b29-b931-d3389fbdf71c", "rel": "self"}, {"href": "http://localhost/allocations/38b695d9-e6b7-4b29-b931-d3389fbdf71c", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/38b695d9-e6b7-4b29-b931-d3389fbdf71c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a9741c8a-fc41-4a3d-b950-bbe97e1f67a5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "38b695d9-e6b7-4b29-b931-d3389fbdf71c", "created_at": "2025-06-04T21:49:26.344087+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/38b695d9-e6b7-4b29-b931-d3389fbdf71c", "rel": "self"}, {"href": "http://localhost/allocations/38b695d9-e6b7-4b29-b931-d3389fbdf71c", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.097858s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-47eff085-3f1d-4b41-a436-39a23851eb75
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.131502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/alloc1.json GOT Response: 204 No Content
Openstack-Request-Id: req-1801b4bd-f641-495d-b451-24f9a75da98b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed [0.105911s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '37fc0998-ea74-4c82-9a1c-1d41c45e23c1', 'owner': '12345'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-fe88b010-5f5d-4aef-bb88-cd131052090e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.102438s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-33c42597-de44-4324-b453-e1a428a56fe9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "9e853358-25ac-404c-94a1-4ff63e67bcea", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/9e853358-25ac-404c-94a1-4ff63e67bcea", "rel": "self"}, {"href": "http://localhost/chassis/9e853358-25ac-404c-94a1-4ff63e67bcea", "rel": "bookmark"}]}, {"uuid": "b07a52b5-8207-4610-a77c-ae18e2ecd620", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b07a52b5-8207-4610-a77c-ae18e2ecd620", "rel": "self"}, {"href": "http://localhost/chassis/b07a52b5-8207-4610-a77c-ae18e2ecd620", "rel": "bookmark"}]}, {"uuid": "75fbdc0e-57aa-4614-aedd-b5222d1abcf1", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/75fbdc0e-57aa-4614-aedd-b5222d1abcf1", "rel": "self"}, {"href": "http://localhost/chassis/75fbdc0e-57aa-4614-aedd-b5222d1abcf1", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=75fbdc0e-57aa-4614-aedd-b5222d1abcf1"}
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.499945s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json_not_found [0.130557s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/alloc1.json GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-11ca58a8-ed6c-4715-aa64-c7d341e5116f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation alloc1.json could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_custom_fields [0.092013s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?fields=extra,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f000b3e0-388a-4f45-b786-6a2d342a014b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "6af3a442-bf3f-4d1d-b9f7-f0921c0beaba", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/6af3a442-bf3f-4d1d-b9f7-f0921c0beaba", "rel": "self"}, {"href": "http://localhost/chassis/6af3a442-bf3f-4d1d-b9f7-f0921c0beaba", "rel": "bookmark"}]}, {"uuid": "0a7ce305-0c6e-4039-9b5f-6fc55998f0ca", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/0a7ce305-0c6e-4039-9b5f-6fc55998f0ca", "rel": "self"}, {"href": "http://localhost/chassis/0a7ce305-0c6e-4039-9b5f-6fc55998f0ca", "rel": "bookmark"}]}, {"uuid": "8b4b0a04-9df9-46c1-890e-69106f6258cc", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/8b4b0a04-9df9-46c1-890e-69106f6258cc", "rel": "self"}, {"href": "http://localhost/chassis/8b4b0a04-9df9-46c1-890e-69106f6258cc", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=8b4b0a04-9df9-46c1-890e-69106f6258cc"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id [0.114980s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '19296026-8702-4931-9844-c14fedd815ee', 'owner': '12345'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-37ddfda7-246b-42f5-bcc5-8583807d21ff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with an owner Project ID value 12345 not matching the requester Project ID 0987. Policy baremetal:allocation:create_restricted is required for this capability.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.071260s] ... ok
{0} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.061911s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.094197s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fc06d66a-31df-43a6-9737-68df03c8e826
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "bf3e29ee-81b6-4a62-b1fc-99332066ded3", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/bf3e29ee-81b6-4a62-b1fc-99332066ded3", "rel": "self"}, {"href": "http://localhost/chassis/bf3e29ee-81b6-4a62-b1fc-99332066ded3", "rel": "bookmark"}]}, {"uuid": "5672afd6-95f1-45e0-9a5d-23d3f9b5ce9f", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/5672afd6-95f1-45e0-9a5d-23d3f9b5ce9f", "rel": "self"}, {"href": "http://localhost/chassis/5672afd6-95f1-45e0-9a5d-23d3f9b5ce9f", "rel": "bookmark"}]}, {"uuid": "ad98e711-8042-487a-8a89-489d8f7c2574", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/ad98e711-8042-487a-8a89-489d8f7c2574", "rel": "self"}, {"href": "http://localhost/chassis/ad98e711-8042-487a-8a89-489d8f7c2574", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=ad98e711-8042-487a-8a89-489d8f7c2574"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.086791s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': '0b71430b-f5c3-4bce-b66f-f12cb8d62ba1', 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-323f17c5-5cb3-4e8e-936e-0757c5728a04
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node [0.156526s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 204 No Content
Openstack-Request-Id: req-ec1a5a72-31d6-4e14-9f03-e33cfbbc1859
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.111007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e93a43da-53b9-420e-afa3-c58220cb79c8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:26.773081+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.124917s] ... 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.TestPost.test_create_allocation_valid_extra [0.152460s] ... 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': 'ee4af3fc-f5fc-4958-a5d0-ebeb684f3f0f', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/ee4af3fc-f5fc-4958-a5d0-ebeb684f3f0f
Openstack-Request-Id: req-d51c7fcd-c3d9-4bf8-87d0-c0db84112ec6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ee4af3fc-f5fc-4958-a5d0-ebeb684f3f0f", "created_at": "2025-06-04T21:49:26.826126+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/ee4af3fc-f5fc-4958-a5d0-ebeb684f3f0f", "rel": "self"}, {"href": "http://localhost/allocations/ee4af3fc-f5fc-4958-a5d0-ebeb684f3f0f", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/ee4af3fc-f5fc-4958-a5d0-ebeb684f3f0f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-01079a38-93a5-4e0a-9936-bb88bdf801e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ee4af3fc-f5fc-4958-a5d0-ebeb684f3f0f", "created_at": "2025-06-04T21:49:26.826126+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/ee4af3fc-f5fc-4958-a5d0-ebeb684f3f0f", "rel": "self"}, {"href": "http://localhost/allocations/ee4af3fc-f5fc-4958-a5d0-ebeb684f3f0f", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single [0.088234s] ... 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-3feabc10-634f-4295-b3ca-513b19e548e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.268703s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/c57e6cef-ea3d-479b-9778-cde93e6f348e WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-20fc5786-a021-4f28-a888-9e73d2d0c7fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c57e6cef-ea3d-479b-9778-cde93e6f348e", "created_at": "2025-06-04T21:49:26.877780+00:00", "updated_at": "2025-06-04T21:49:26.946503+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/c57e6cef-ea3d-479b-9778-cde93e6f348e", "rel": "self"}, {"href": "http://localhost/allocations/c57e6cef-ea3d-479b-9778-cde93e6f348e", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query [0.072443s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4ce95436-19ac-4f0a-ac13-1d39267620a4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:26.954917+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.129104s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/9b04e49e-4a83-4d2d-9e0f-6c9d81f2c40c/allocation GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f62d9bd9-acae-4765-99c9-d7af50148139
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node 9b04e49e-4a83-4d2d-9e0f-6c9d81f2c40c was not found\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.147923s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': ['node-1', 'db9d4904-4978-481f-bc42-e2c804dae6f3'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '34144eb3-772d-4454-a782-1365627ed5a8', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/34144eb3-772d-4454-a782-1365627ed5a8
Openstack-Request-Id: req-85d8d993-a71b-4f19-91fa-e7a5b0f90f3c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "34144eb3-772d-4454-a782-1365627ed5a8", "created_at": "2025-06-04T21:49:26.980514+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "db9d4904-4978-481f-bc42-e2c804dae6f3"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/34144eb3-772d-4454-a782-1365627ed5a8", "rel": "self"}, {"href": "http://localhost/allocations/34144eb3-772d-4454-a782-1365627ed5a8", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/34144eb3-772d-4454-a782-1365627ed5a8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d031bd19-433c-42b2-beb2-25a2d6688a2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "34144eb3-772d-4454-a782-1365627ed5a8", "created_at": "2025-06-04T21:49:26.980514+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "db9d4904-4978-481f-bc42-e2c804dae6f3"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/34144eb3-772d-4454-a782-1365627ed5a8", "rel": "self"}, {"href": "http://localhost/allocations/34144eb3-772d-4454-a782-1365627ed5a8", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false [0.083366s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-45ad7049-6923-44f7-8e49-74810e59feba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
GET /v1/chassis?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aff2785c-1636-4022-b0da-e6f95d762a2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.078012s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/7487b6dd-571a-4997-8092-456677ac0e63 GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.073106s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=True&fields=description WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c2d2091e-fc65-4ace-9bfa-4f7697f828c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.069030s] ... 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\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.196815s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/dd4f98af-6791-454a-93c0-f3c5eba6aad5 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-41a47820-54c1-4649-9b7f-159f36dfdcea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "dd4f98af-6791-454a-93c0-f3c5eba6aad5", "created_at": "2025-06-04T21:49:27.053947+00:00", "updated_at": "2025-06-04T21:49:27.121698+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/dd4f98af-6791-454a-93c0-f3c5eba6aad5", "rel": "self"}, {"href": "http://localhost/allocations/dd4f98af-6791-454a-93c0-f3c5eba6aad5", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/dd4f98af-6791-454a-93c0-f3c5eba6aad5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e3a41769-d64f-4bd2-bd73-c37cc063ced6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "dd4f98af-6791-454a-93c0-f3c5eba6aad5", "created_at": "2025-06-04T21:49:27.053947+00:00", "updated_at": "2025-06-04T21:49:27.121698+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/dd4f98af-6791-454a-93c0-f3c5eba6aad5", "rel": "self"}, {"href": "http://localhost/allocations/dd4f98af-6791-454a-93c0-f3c5eba6aad5", "rel": "bookmark"}], "node_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.130950s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '68efa8ea-716f-48cc-bd15-40dd8eaaf87d', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/68efa8ea-716f-48cc-bd15-40dd8eaaf87d
Openstack-Request-Id: req-2d07affd-eeb3-4c1b-912d-338c4198a9be
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "68efa8ea-716f-48cc-bd15-40dd8eaaf87d", "created_at": "2025-06-04T21:49:27.152183+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/68efa8ea-716f-48cc-bd15-40dd8eaaf87d", "rel": "self"}, {"href": "http://localhost/allocations/68efa8ea-716f-48cc-bd15-40dd8eaaf87d", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.083968s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=False&fields=description WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-700bcedc-55db-4129-af2c-308b41014c1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.076270s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/9852086d-186e-425a-86c0-b75b8a6d7bfc/allocation GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8e220591-20be-4ea5-a290-a3f04763eb83
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 9852086d-186e-425a-86c0-b75b8a6d7bfc could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.127574s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/ae31c478-88c9-453b-b50f-dfe9eff0e364 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2fbab41e-e029-4b69-a2f9-50a5243cc31f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: name, extra\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.074591s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-40a0c20a-df6c-4c3f-9c8d-0961063829af
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.163029s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': 'f6067133-8118-457c-b09b-0f20718bcc1e', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/f6067133-8118-457c-b09b-0f20718bcc1e
Openstack-Request-Id: req-9ac2183f-3622-4112-b5e7-cabe9fe255b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f6067133-8118-457c-b09b-0f20718bcc1e", "created_at": "2025-06-04T21:49:27.307337+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/f6067133-8118-457c-b09b-0f20718bcc1e", "rel": "self"}, {"href": "http://localhost/allocations/f6067133-8118-457c-b09b-0f20718bcc1e", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/f6067133-8118-457c-b09b-0f20718bcc1e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d60e3e89-11ac-4bd6-975b-b4c693f624d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f6067133-8118-457c-b09b-0f20718bcc1e", "created_at": "2025-06-04T21:49:27.307337+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/f6067133-8118-457c-b09b-0f20718bcc1e", "rel": "self"}, {"href": "http://localhost/allocations/f6067133-8118-457c-b09b-0f20718bcc1e", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.116120s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/ed08197d-0e2b-4ddb-801d-e148a50c3adc GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-13c636d2-a521-45e9-ad68-3522ec7fec90
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_chassis.TestListChassis.test_empty [0.070612s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-05e37b14-b9d8-435e-aab4-0e36e560a742
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": []}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.065584s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-111bb732-6437-4f01-8a44-664f4be8617a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "592d90f7-81ba-48a4-96b9-67301dd41f04", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/592d90f7-81ba-48a4-96b9-67301dd41f04", "rel": "self"}, {"href": "http://localhost/chassis/592d90f7-81ba-48a4-96b9-67301dd41f04", "rel": "bookmark"}]}, {"uuid": "b3705121-3285-4155-9383-efe6de7d50b9", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b3705121-3285-4155-9383-efe6de7d50b9", "rel": "self"}, {"href": "http://localhost/chassis/b3705121-3285-4155-9383-efe6de7d50b9", "rel": "bookmark"}]}, {"uuid": "8300df8f-de44-4deb-90f7-51382b5740de", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/8300df8f-de44-4deb-90f7-51382b5740de", "rel": "self"}, {"href": "http://localhost/chassis/8300df8f-de44-4deb-90f7-51382b5740de", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch [0.088563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=54321 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7665bc8f-74d8-48a0-b52c-1b5d83da0df9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.125635s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f942efa7-8950-4a66-8739-dbf52074656f', 'owner': None} GOT Response: 405 Method Not Allowed
Allow: DELETE, GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden [0.056748s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9832801b-a9e0-4780-8dd7-6e11074dba67
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project [0.034869s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e1066969-126e-44bb-aacd-91cba0b68461
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.098638s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?fields=extra&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a5a9d5aa-6e5f-4b08-8066-34a8f42bd90b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"extra": {}, "links": [{"href": "http://localhost/v1/chassis/d8ea98ee-43b7-4732-9865-c02db3f7813f", "rel": "self"}, {"href": "http://localhost/chassis/d8ea98ee-43b7-4732-9865-c02db3f7813f", "rel": "bookmark"}]}, {"extra": {}, "links": [{"href": "http://localhost/v1/chassis/22db9a33-c9ec-474e-aae1-face579ba9a7", "rel": "self"}, {"href": "http://localhost/chassis/22db9a33-c9ec-474e-aae1-face579ba9a7", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=22db9a33-c9ec-474e-aae1-face579ba9a7"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.290603s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2992bfbe-0618-45a1-868f-c774d1c99445
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "03cb20bd-633c-4e10-8f8e-59bcf06c961a", "created_at": "2025-06-04T21:49:27.395591+00:00", "updated_at": "2025-06-04T21:49:27.457763+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/03cb20bd-633c-4e10-8f8e-59bcf06c961a", "rel": "self"}, {"href": "http://localhost/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-174c1e2b-fb5d-4205-a77f-288f1ce01b91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "03cb20bd-633c-4e10-8f8e-59bcf06c961a", "created_at": "2025-06-04T21:49:27.395591+00:00", "updated_at": "2025-06-04T21:49:27.457763+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/03cb20bd-633c-4e10-8f8e-59bcf06c961a", "rel": "self"}, {"href": "http://localhost/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a", "rel": "bookmark"}], "node_uuid": null}
PATCH /v1/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2f64cd87-21f8-4c2c-ae35-ad5460fb0de7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "03cb20bd-633c-4e10-8f8e-59bcf06c961a", "created_at": "2025-06-04T21:49:27.395591+00:00", "updated_at": "2025-06-04T21:49:27.549378+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a", "rel": "self"}, {"href": "http://localhost/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb060406-9a0e-4373-9df0-b8e86b36e243
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "03cb20bd-633c-4e10-8f8e-59bcf06c961a", "created_at": "2025-06-04T21:49:27.395591+00:00", "updated_at": "2025-06-04T21:49:27.549378+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a", "rel": "self"}, {"href": "http://localhost/allocations/03cb20bd-633c-4e10-8f8e-59bcf06c961a", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.065439s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.068617s] ... 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-43365c76-91f4-440c-b5fe-142abf898b16
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed [0.158348s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '9af7733f-4778-40d4-904f-a4a2ba5a4e78', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-00db55da-8a7e-4f8a-b490-681240611605
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: Additional properties are not allowed ('node_uuid' was unexpected)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.072000s] ... 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-08edc9a3-f3f4-4a91-8a33-f4c31262e5cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin [0.101180s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb89d322-7e18-45a0-89e2-84fc7e586ffc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"allocations": [{"uuid": "320ac8e2-0963-4fbb-b232-7857b8183067", "created_at": "2025-06-04T21:49:27.657292+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/320ac8e2-0963-4fbb-b232-7857b8183067", "rel": "self"}, {"href": "http://localhost/allocations/320ac8e2-0963-4fbb-b232-7857b8183067", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "0785a872-2ea0-4bcf-b755-644228403b0d", "created_at": "2025-06-04T21:49:27.658189+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/0785a872-2ea0-4bcf-b755-644228403b0d", "rel": "self"}, {"href": "http://localhost/allocations/0785a872-2ea0-4bcf-b755-644228403b0d", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "429f5ce0-88b7-4a20-9115-1eb0a305211f", "created_at": "2025-06-04T21:49:27.659040+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/429f5ce0-88b7-4a20-9115-1eb0a305211f", "rel": "self"}, {"href": "http://localhost/allocations/429f5ce0-88b7-4a20-9115-1eb0a305211f", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "caa88d3f-5882-42ca-907f-e64b45be1fa6", "created_at": "2025-06-04T21:49:27.659880+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/caa88d3f-5882-42ca-907f-e64b45be1fa6", "rel": "self"}, {"href": "http://localhost/allocations/caa88d3f-5882-42ca-907f-e64b45be1fa6", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "091f91c1-f248-432a-8fab-f44f6726def9", "created_at": "2025-06-04T21:49:27.662427+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/091f91c1-f248-432a-8fab-f44f6726def9", "rel": "self"}, {"href": "http://localhost/allocations/091f91c1-f248-432a-8fab-f44f6726def9", "rel": "bookmark"}], "node_uuid": null}]}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.140339s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/6071f530-10ce-46c4-8286-5d55fed2d6e0 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-45788054-713b-40ab-9458-014505e85d0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.068705s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-478815d4-ec0d-452b-b3af-41443adc905d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:27.747899+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version [0.096241s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/e642720d-2ec3-43ea-81f3-1b2df6ea9a61 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-591972a9-7f81-42b9-ba8a-57cf687f0cf7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"uuid": "e642720d-2ec3-43ea-81f3-1b2df6ea9a61", "created_at": "2025-06-04T21:49:27.759230+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/e642720d-2ec3-43ea-81f3-1b2df6ea9a61", "rel": "self"}, {"href": "http://localhost/allocations/e642720d-2ec3-43ea-81f3-1b2df6ea9a61", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/e642720d-2ec3-43ea-81f3-1b2df6ea9a61 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e47b76d8-d9c8-47c5-bda6-04d8d2a8afbe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e642720d-2ec3-43ea-81f3-1b2df6ea9a61", "created_at": "2025-06-04T21:49:27.759230+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/e642720d-2ec3-43ea-81f3-1b2df6ea9a61", "rel": "self"}, {"href": "http://localhost/allocations/e642720d-2ec3-43ea-81f3-1b2df6ea9a61", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner [0.165583s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'cb4dca88-4304-4e14-bebe-47db9acb6a32', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/cb4dca88-4304-4e14-bebe-47db9acb6a32
Openstack-Request-Id: req-14bbdd36-c021-466d-9093-62888f26b855
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "cb4dca88-4304-4e14-bebe-47db9acb6a32", "created_at": "2025-06-04T21:49:27.771513+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/cb4dca88-4304-4e14-bebe-47db9acb6a32", "rel": "self"}, {"href": "http://localhost/allocations/cb4dca88-4304-4e14-bebe-47db9acb6a32", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/cb4dca88-4304-4e14-bebe-47db9acb6a32 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-db1846a4-dd7b-48ae-9a18-b4b8c4c02d78
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "cb4dca88-4304-4e14-bebe-47db9acb6a32", "created_at": "2025-06-04T21:49:27.771513+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/cb4dca88-4304-4e14-bebe-47db9acb6a32", "rel": "self"}, {"href": "http://localhost/allocations/cb4dca88-4304-4e14-bebe-47db9acb6a32", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields [0.085598s] ... 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-f5445cf4-f210-4efc-843e-4636b77a46e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field [0.095862s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/1c8f5c3e-860a-492c-b10d-da59f652a058 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-47e45cd1-e860-45ce-853f-094abc1faa34
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1c8f5c3e-860a-492c-b10d-da59f652a058", "created_at": "2025-06-04T21:49:27.864921+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/1c8f5c3e-860a-492c-b10d-da59f652a058", "rel": "self"}, {"href": "http://localhost/allocations/1c8f5c3e-860a-492c-b10d-da59f652a058", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular [0.193286s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/e5acb209-61a8-4b8f-a2c9-02aef96f48a5 WITH [{'path': '/extra/a', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-acee97b1-af18-404b-831b-8e4c81fcaa81
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e5acb209-61a8-4b8f-a2c9-02aef96f48a5", "created_at": "2025-06-04T21:49:27.824417+00:00", "updated_at": "2025-06-04T21:49:27.888958+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e5acb209-61a8-4b8f-a2c9-02aef96f48a5", "rel": "self"}, {"href": "http://localhost/allocations/e5acb209-61a8-4b8f-a2c9-02aef96f48a5", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/e5acb209-61a8-4b8f-a2c9-02aef96f48a5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7dda6c55-14c4-4862-b614-bc9787106394
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e5acb209-61a8-4b8f-a2c9-02aef96f48a5", "created_at": "2025-06-04T21:49:27.824417+00:00", "updated_at": "2025-06-04T21:49:27.888958+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/e5acb209-61a8-4b8f-a2c9-02aef96f48a5", "rel": "self"}, {"href": "http://localhost/allocations/e5acb209-61a8-4b8f-a2c9-02aef96f48a5", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.077620s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/43995266-3a9e-4e91-a8db-b341c099bd11 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a207d2a3-3f23-42d3-ae02-49cbbd2eb4e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "43995266-3a9e-4e91-a8db-b341c099bd11", "created_at": "2025-06-04T21:49:27.900962+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/43995266-3a9e-4e91-a8db-b341c099bd11", "rel": "self"}, {"href": "http://localhost/chassis/43995266-3a9e-4e91-a8db-b341c099bd11", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/43995266-3a9e-4e91-a8db-b341c099bd11/nodes", "rel": "self"}, {"href": "http://localhost/chassis/43995266-3a9e-4e91-a8db-b341c099bd11/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/43995266-3a9e-4e91-a8db-b341c099bd11 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-568d8d3f-e014-4549-ab94-a05218b81e2d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "43995266-3a9e-4e91-a8db-b341c099bd11", "created_at": "2025-06-04T21:49:27.900962+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/43995266-3a9e-4e91-a8db-b341c099bd11", "rel": "self"}, {"href": "http://localhost/chassis/43995266-3a9e-4e91-a8db-b341c099bd11", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/43995266-3a9e-4e91-a8db-b341c099bd11/nodes", "rel": "self"}, {"href": "http://localhost/chassis/43995266-3a9e-4e91-a8db-b341c099bd11/nodes", "rel": "bookmark"}]]}
GET /chassis/43995266-3a9e-4e91-a8db-b341c099bd11 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f035eb41-bc73-4e6e-9f92-b9d074c2a04f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "43995266-3a9e-4e91-a8db-b341c099bd11", "created_at": "2025-06-04T21:49:27.900962+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/43995266-3a9e-4e91-a8db-b341c099bd11", "rel": "self"}, {"href": "http://localhost/chassis/43995266-3a9e-4e91-a8db-b341c099bd11", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/43995266-3a9e-4e91-a8db-b341c099bd11/nodes", "rel": "self"}, {"href": "http://localhost/chassis/43995266-3a9e-4e91-a8db-b341c099bd11/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden [0.156990s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '8de290bb-81e6-45fd-bc27-c53006d7249a', 'owner': None} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f6d53fea-bf17-423a-9b9e-7008b5c67986
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present [0.089770s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/621b471b-879f-4b63-b7a7-a698ede1e16e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-615b440a-4bfb-48f4-b261-ce72d49298ad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "621b471b-879f-4b63-b7a7-a698ede1e16e", "created_at": "2025-06-04T21:49:27.959733+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/621b471b-879f-4b63-b7a7-a698ede1e16e", "rel": "self"}, {"href": "http://localhost/allocations/621b471b-879f-4b63-b7a7-a698ede1e16e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.108261s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e86d9b9b-13e0-433b-8cfd-b2ff58ee4989
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b0d44201-5615-4f57-9ddb-e6fd4410d33e", "created_at": "2025-06-04T21:49:27.992858+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e", "rel": "self"}, {"href": "http://foo/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e/nodes", "rel": "self"}, {"href": "http://foo/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-77bf3bcb-5d99-4c96-90f0-3008db38520a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b0d44201-5615-4f57-9ddb-e6fd4410d33e", "created_at": "2025-06-04T21:49:27.992858+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e", "rel": "self"}, {"href": "http://foo/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e/nodes", "rel": "self"}, {"href": "http://foo/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e/nodes", "rel": "bookmark"}]]}
GET /chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-34f797a2-67c7-44dd-948b-e0f1475b1e7c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b0d44201-5615-4f57-9ddb-e6fd4410d33e", "created_at": "2025-06-04T21:49:27.992858+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e", "rel": "self"}, {"href": "http://foo/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e/nodes", "rel": "self"}, {"href": "http://foo/chassis/b0d44201-5615-4f57-9ddb-e6fd4410d33e/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.084363s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/node/3228d7d1-d9cf-4be3-b5d0-5d82986924cf/allocation 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_allocation.TestPatch.test_remove_uuid [0.150571s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/7d1a317d-b0a0-470c-9618-f5fe9b248148 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0c40e7df-5340-4cb3-a6a5-afcde062a0ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: name, extra\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.081516s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-155a210d-6909-45b0-b4dc-c3012313ba32
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "6592da78-6a4a-4538-a281-1e464b65da8e", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/6592da78-6a4a-4538-a281-1e464b65da8e", "rel": "self"}, {"href": "http://localhost/chassis/6592da78-6a4a-4538-a281-1e464b65da8e", "rel": "bookmark"}]}, {"uuid": "7c8983e8-c211-4eff-b4fb-343c8876835c", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/7c8983e8-c211-4eff-b4fb-343c8876835c", "rel": "self"}, {"href": "http://localhost/chassis/7c8983e8-c211-4eff-b4fb-343c8876835c", "rel": "bookmark"}]}, {"uuid": "7d67f385-e962-4048-aac6-f990f328e343", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/7d67f385-e962-4048-aac6-f990f328e343", "rel": "self"}, {"href": "http://localhost/chassis/7d67f385-e962-4048-aac6-f990f328e343", "rel": "bookmark"}]}, {"uuid": "91c615bc-ebc9-48ff-b62e-abdff6653bc3", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/91c615bc-ebc9-48ff-b62e-abdff6653bc3", "rel": "self"}, {"href": "http://localhost/chassis/91c615bc-ebc9-48ff-b62e-abdff6653bc3", "rel": "bookmark"}]}, {"uuid": "808b83ac-e611-4086-b65b-e6b05c629b78", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/808b83ac-e611-4086-b65b-e6b05c629b78", "rel": "self"}, {"href": "http://localhost/chassis/808b83ac-e611-4086-b65b-e6b05c629b78", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.070986s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/node/f20c0987-3d19-4795-82ed-65251dc1a20c/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.TestPost.test_create_restricted_allocation_normal [0.169799s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd4c45c1c-4409-440d-9d91-90f4490c2639', 'owner': None} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/d4c45c1c-4409-440d-9d91-90f4490c2639
Openstack-Request-Id: req-7e7aa056-eb84-43a7-94f8-90b1fbd304c5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "d4c45c1c-4409-440d-9d91-90f4490c2639", "created_at": "2025-06-04T21:49:28.101245+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/d4c45c1c-4409-440d-9d91-90f4490c2639", "rel": "self"}, {"href": "http://localhost/allocations/d4c45c1c-4409-440d-9d91-90f4490c2639", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/d4c45c1c-4409-440d-9d91-90f4490c2639 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7f77e6fa-dbc9-438e-8123-a8c4ae601886
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "d4c45c1c-4409-440d-9d91-90f4490c2639", "created_at": "2025-06-04T21:49:28.101245+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/d4c45c1c-4409-440d-9d91-90f4490c2639", "rel": "self"}, {"href": "http://localhost/allocations/d4c45c1c-4409-440d-9d91-90f4490c2639", "rel": "bookmark"}], "node_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.136612s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/effe6fbf-740c-46c1-b7f7-975fb4d13665 WITH [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-29e92f79-8c15-49d7-b274-4ddc679967cf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update allocation with invalid name '[test]'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.095581s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0e6ec51d-8c1e-4f4c-831c-7ae080100ac7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "1a9aa71a-e056-410c-ad01-5ee1ea7783d5", "created_at": "2025-06-04T21:49:28.199655+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/1a9aa71a-e056-410c-ad01-5ee1ea7783d5", "rel": "self"}, {"href": "http://localhost/allocations/1a9aa71a-e056-410c-ad01-5ee1ea7783d5", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "2d80808e-b836-4751-880f-b8f984671c9d", "created_at": "2025-06-04T21:49:28.200673+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/2d80808e-b836-4751-880f-b8f984671c9d", "rel": "self"}, {"href": "http://localhost/allocations/2d80808e-b836-4751-880f-b8f984671c9d", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "a711b3b7-779a-4847-a04a-9738453c3f3b", "created_at": "2025-06-04T21:49:28.201528+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/a711b3b7-779a-4847-a04a-9738453c3f3b", "rel": "self"}, {"href": "http://localhost/allocations/a711b3b7-779a-4847-a04a-9738453c3f3b", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=a711b3b7-779a-4847-a04a-9738453c3f3b"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.137555s] ... 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-6f4c6380-9ef0-4102-8e4a-f428ca9fa590
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "7aadadf4-4ee5-42c6-92c7-2111527a8282", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7aadadf4-4ee5-42c6-92c7-2111527a8282", "rel": "self"}, {"href": "http://localhost/nodes/7aadadf4-4ee5-42c6-92c7-2111527a8282", "rel": "bookmark"}]}, {"uuid": "2238a5d1-9101-46d9-8760-de308f6163f4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2238a5d1-9101-46d9-8760-de308f6163f4", "rel": "self"}, {"href": "http://localhost/nodes/2238a5d1-9101-46d9-8760-de308f6163f4", "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-bfd4ea36-addf-45f3-b706-b275fde7bbdb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "7aadadf4-4ee5-42c6-92c7-2111527a8282", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7aadadf4-4ee5-42c6-92c7-2111527a8282", "rel": "self"}, {"href": "http://localhost/nodes/7aadadf4-4ee5-42c6-92c7-2111527a8282", "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=7aadadf4-4ee5-42c6-92c7-2111527a8282"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.073847s] ... 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-88690081-cb70-4ae8-9216-361db54f6521
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version [0.186083s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0ec02c96-2b48-4643-b636-1d64a85a487a'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/0ec02c96-2b48-4643-b636-1d64a85a487a
Openstack-Request-Id: req-d25710fa-8548-4e9e-8909-144dac85a84a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"uuid": "0ec02c96-2b48-4643-b636-1d64a85a487a", "created_at": "2025-06-04T21:49:28.281746+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/0ec02c96-2b48-4643-b636-1d64a85a487a", "rel": "self"}, {"href": "http://localhost/allocations/0ec02c96-2b48-4643-b636-1d64a85a487a", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/0ec02c96-2b48-4643-b636-1d64a85a487a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-20dd6ac1-f3da-4bcc-a0f1-825e636b379c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"uuid": "0ec02c96-2b48-4643-b636-1d64a85a487a", "created_at": "2025-06-04T21:49:28.281746+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/0ec02c96-2b48-4643-b636-1d64a85a487a", "rel": "self"}, {"href": "http://localhost/allocations/0ec02c96-2b48-4643-b636-1d64a85a487a", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.119999s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e5d67b9-8446-40c8-bcfc-3ecf7f6cf1fd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "3b2e09a7-e49b-4e3b-b1e3-8822a29dbfdb", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/3b2e09a7-e49b-4e3b-b1e3-8822a29dbfdb", "rel": "self"}, {"href": "http://localhost/allocations/3b2e09a7-e49b-4e3b-b1e3-8822a29dbfdb", "rel": "bookmark"}]}, {"uuid": "477f1c0a-0822-4a1a-8724-4763d03c2426", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/477f1c0a-0822-4a1a-8724-4763d03c2426", "rel": "self"}, {"href": "http://localhost/allocations/477f1c0a-0822-4a1a-8724-4763d03c2426", "rel": "bookmark"}]}, {"uuid": "cd544df3-56ef-4626-9894-52dba3e9e2e4", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/cd544df3-56ef-4626-9894-52dba3e9e2e4", "rel": "self"}, {"href": "http://localhost/allocations/cd544df3-56ef-4626-9894-52dba3e9e2e4", "rel": "bookmark"}]}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=cd544df3-56ef-4626-9894-52dba3e9e2e4"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.079984s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a8f74f80-12c8-493d-88f7-45495fde4339
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:28.390454+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit [0.085471s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f3eccc35-20c8-4664-a9e9-8bb145df8f8f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "3ad94191-fdb4-4e45-b461-f924c9a50560", "created_at": "2025-06-04T21:49:28.414368+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/3ad94191-fdb4-4e45-b461-f924c9a50560", "rel": "self"}, {"href": "http://localhost/allocations/3ad94191-fdb4-4e45-b461-f924c9a50560", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "7a161b26-32f0-4def-b00b-c1b41fe476cf", "created_at": "2025-06-04T21:49:28.417322+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/7a161b26-32f0-4def-b00b-c1b41fe476cf", "rel": "self"}, {"href": "http://localhost/allocations/7a161b26-32f0-4def-b00b-c1b41fe476cf", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "01caac35-3e9b-4bde-8648-d06bde60047f", "created_at": "2025-06-04T21:49:28.418196+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/01caac35-3e9b-4bde-8648-d06bde60047f", "rel": "self"}, {"href": "http://localhost/allocations/01caac35-3e9b-4bde-8648-d06bde60047f", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=01caac35-3e9b-4bde-8648-d06bde60047f"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.240011s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/94cea20e-25e3-4d61-a96c-02643e41f211 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-62c7a7f2-4496-4750-b0ee-5340cd8cf77e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "94cea20e-25e3-4d61-a96c-02643e41f211", "created_at": "2025-06-04T21:49:28.342394+00:00", "updated_at": "2025-06-04T21:49:28.421410+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/94cea20e-25e3-4d61-a96c-02643e41f211", "rel": "self"}, {"href": "http://localhost/allocations/94cea20e-25e3-4d61-a96c-02643e41f211", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/94cea20e-25e3-4d61-a96c-02643e41f211 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e9c14a37-8825-4062-a9c2-fadfde4b87c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "94cea20e-25e3-4d61-a96c-02643e41f211", "created_at": "2025-06-04T21:49:28.342394+00:00", "updated_at": "2025-06-04T21:49:28.421410+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/94cea20e-25e3-4d61-a96c-02643e41f211", "rel": "self"}, {"href": "http://localhost/allocations/94cea20e-25e3-4d61-a96c-02643e41f211", "rel": "bookmark"}], "node_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.079333s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/nodes WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-85d53446-d8ba-4720-9e52-e9d9551f023d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner [0.162633s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '593f24d2-0426-4ecb-b10b-43b28cf3da43', 'owner': '54321'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a540dda1-b9da-4cf1-97f1-5df768ed2fdb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.097257s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a055cca4-c152-49ca-9e6e-c0c0ce4ee391
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": []}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.080698s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af2320a3-ca23-430a-987b-cb92571dc692
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.079841s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d73ceb4c-cac7-47c3-a65f-304b5a2d4779
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "0298e15e-1e82-4ce3-a688-dc4e4b5db179", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/0298e15e-1e82-4ce3-a688-dc4e4b5db179", "rel": "self"}, {"href": "http://localhost/chassis/0298e15e-1e82-4ce3-a688-dc4e4b5db179", "rel": "bookmark"}]}, {"uuid": "91a6b373-ff1a-4fbd-8e36-57ee9d7b2501", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/91a6b373-ff1a-4fbd-8e36-57ee9d7b2501", "rel": "self"}, {"href": "http://localhost/chassis/91a6b373-ff1a-4fbd-8e36-57ee9d7b2501", "rel": "bookmark"}]}, {"uuid": "b1b6ef78-bcbb-4e3a-ba5b-7255372658f8", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b1b6ef78-bcbb-4e3a-ba5b-7255372658f8", "rel": "self"}, {"href": "http://localhost/chassis/b1b6ef78-bcbb-4e3a-ba5b-7255372658f8", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.186326s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/54787ba7-8729-485b-bcdd-2195b0ebc08f WITH [{'path': '/name', 'value': None, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-577d6231-e9fa-4cc8-ad74-6213eda099a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "54787ba7-8729-485b-bcdd-2195b0ebc08f", "created_at": "2025-06-04T21:49:28.551207+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/54787ba7-8729-485b-bcdd-2195b0ebc08f", "rel": "self"}, {"href": "http://localhost/allocations/54787ba7-8729-485b-bcdd-2195b0ebc08f", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/54787ba7-8729-485b-bcdd-2195b0ebc08f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4f20ea7f-2595-40ac-aeeb-6e8fa945ced3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "54787ba7-8729-485b-bcdd-2195b0ebc08f", "created_at": "2025-06-04T21:49:28.551207+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/54787ba7-8729-485b-bcdd-2195b0ebc08f", "rel": "self"}, {"href": "http://localhost/allocations/54787ba7-8729-485b-bcdd-2195b0ebc08f", "rel": "bookmark"}], "node_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner [0.145948s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '329b5150-938b-4824-bbbb-bd2368ab9651', 'owner': '12345'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/allocations/329b5150-938b-4824-bbbb-bd2368ab9651
Openstack-Request-Id: req-f7ea1174-4e1e-42ae-8dda-3ca59cd2cda3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "329b5150-938b-4824-bbbb-bd2368ab9651", "created_at": "2025-06-04T21:49:28.624837+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/329b5150-938b-4824-bbbb-bd2368ab9651", "rel": "self"}, {"href": "http://localhost/allocations/329b5150-938b-4824-bbbb-bd2368ab9651", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/329b5150-938b-4824-bbbb-bd2368ab9651 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8b3dcbf1-8b6e-477b-8b03-ddf9e8ae23da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "329b5150-938b-4824-bbbb-bd2368ab9651", "created_at": "2025-06-04T21:49:28.624837+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/329b5150-938b-4824-bbbb-bd2368ab9651", "rel": "self"}, {"href": "http://localhost/allocations/329b5150-938b-4824-bbbb-bd2368ab9651", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.142909s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?node=node-1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-acdb3bd6-5723-40f5-bdee-4b0d6c93e112
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "92d1f5f0-8013-406e-9239-201e536dcc45", "created_at": "2025-06-04T21:49:28.606239+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/92d1f5f0-8013-406e-9239-201e536dcc45", "rel": "self"}, {"href": "http://localhost/allocations/92d1f5f0-8013-406e-9239-201e536dcc45", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5864748e-1f20-4db5-954b-c66aaf484254", "created_at": "2025-06-04T21:49:28.607245+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/5864748e-1f20-4db5-954b-c66aaf484254", "rel": "self"}, {"href": "http://localhost/allocations/5864748e-1f20-4db5-954b-c66aaf484254", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "afd51a4f-7188-42cc-89f2-6740974d7a4f", "created_at": "2025-06-04T21:49:28.608084+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/afd51a4f-7188-42cc-89f2-6740974d7a4f", "rel": "self"}, {"href": "http://localhost/allocations/afd51a4f-7188-42cc-89f2-6740974d7a4f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.073608s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ad659e25-2c38-4b8e-a40b-0317f6aa5c01
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/chassis?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1a64fce7-f8c2-4bf1-8298-ecde3a5c49da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.100341s] ... 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-752bba8e-8952-46eb-bfbc-6edeb5a61b41
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "8a5ded41-cd40-4ec0-be5c-873d73ab0ff5", "created_at": "2025-06-04T21:49:28.753640+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/8a5ded41-cd40-4ec0-be5c-873d73ab0ff5", "rel": "self"}, {"href": "http://localhost/allocations/8a5ded41-cd40-4ec0-be5c-873d73ab0ff5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.140377s] ... 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-420ff536-666a-4692-aaf7-6e04477acf5a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:28.803302+00:00", "updated_at": "2025-06-04T21:49:28.844347+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-f1268af0-8f46-4571-a5ef-8939b827e854
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:28.803302+00:00", "updated_at": "2025-06-04T21:49:28.844347+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"}]]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links [0.223876s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b54876c0-767f-4497-afbc-d2ab0ad766a8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "9d291a6d-fa98-4c58-87fa-c52e625da111", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/9d291a6d-fa98-4c58-87fa-c52e625da111", "rel": "self"}, {"href": "http://localhost/deploy_templates/9d291a6d-fa98-4c58-87fa-c52e625da111", "rel": "bookmark"}]}, {"uuid": "a36967d2-dd14-4cc7-a6da-6f19f89cfae6", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/a36967d2-dd14-4cc7-a6da-6f19f89cfae6", "rel": "self"}, {"href": "http://localhost/deploy_templates/a36967d2-dd14-4cc7-a6da-6f19f89cfae6", "rel": "bookmark"}]}, {"uuid": "e223712f-9404-4209-8cc0-3223deb15f12", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/e223712f-9404-4209-8cc0-3223deb15f12", "rel": "self"}, {"href": "http://localhost/deploy_templates/e223712f-9404-4209-8cc0-3223deb15f12", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=e223712f-9404-4209-8cc0-3223deb15f12"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular [0.251307s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/9a41e50f-aa7f-42b8-8302-6be07ac853f1 WITH [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4b4d3c37-bc58-4377-bd7a-edfd22a44c78
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9a41e50f-aa7f-42b8-8302-6be07ac853f1", "created_at": "2025-06-04T21:49:28.779070+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/9a41e50f-aa7f-42b8-8302-6be07ac853f1", "rel": "self"}, {"href": "http://localhost/allocations/9a41e50f-aa7f-42b8-8302-6be07ac853f1", "rel": "bookmark"}], "node_uuid": null}
GET /v1/allocations/9a41e50f-aa7f-42b8-8302-6be07ac853f1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ed7ab363-8c90-4f1e-871a-2be65da18655
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9a41e50f-aa7f-42b8-8302-6be07ac853f1", "created_at": "2025-06-04T21:49:28.779070+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/9a41e50f-aa7f-42b8-8302-6be07ac853f1", "rel": "self"}, {"href": "http://localhost/allocations/9a41e50f-aa7f-42b8-8302-6be07ac853f1", "rel": "bookmark"}], "node_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.121578s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?node=banana WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-56980c2b-c450-4f8b-b49d-d570aa33ef07
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root [0.072123s] ... 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-38d05596-c363-4f27-80fd-d778889a086a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:28.905789+00:00", "updated_at": "2025-06-04T21:49:28.937884+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"}]]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.052021s] ... 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-889caee7-a3d1-4786-aa3e-fc51d2beea42
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: uuid, extra, description\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.036106s] ... 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-624d1c42-d574-4106-b461-885dc373cfc9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner [0.141347s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=12345 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b8494467-b24a-4956-b6db-98cb065ad468
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "555dc815-4074-4622-9d91-dbdcb908939f", "created_at": "2025-06-04T21:49:29.037929+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/555dc815-4074-4622-9d91-dbdcb908939f", "rel": "self"}, {"href": "http://localhost/allocations/555dc815-4074-4622-9d91-dbdcb908939f", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "155df604-33c3-490a-985b-d42ff93593e5", "created_at": "2025-06-04T21:49:29.039394+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/155df604-33c3-490a-985b-d42ff93593e5", "rel": "self"}, {"href": "http://localhost/allocations/155df604-33c3-490a-985b-d42ff93593e5", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "b2f4cb73-ef3b-4ca9-a0bf-e402f4378d09", "created_at": "2025-06-04T21:49:29.040229+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/b2f4cb73-ef3b-4ca9-a0bf-e402f4378d09", "rel": "self"}, {"href": "http://localhost/allocations/b2f4cb73-ef3b-4ca9-a0bf-e402f4378d09", "rel": "bookmark"}], "node_uuid": null}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.173592s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-054cf34d-10cc-4e50-a589-788f138d128a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "25bb9b80-30a9-4d08-86eb-123b9bf3be22", "links": [{"href": "http://localhost/v1/deploy_templates/25bb9b80-30a9-4d08-86eb-123b9bf3be22", "rel": "self"}, {"href": "http://localhost/deploy_templates/25bb9b80-30a9-4d08-86eb-123b9bf3be22", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "4cc3ae00-ff0d-4dba-bc5d-9688c67bbef4", "links": [{"href": "http://localhost/v1/deploy_templates/4cc3ae00-ff0d-4dba-bc5d-9688c67bbef4", "rel": "self"}, {"href": "http://localhost/deploy_templates/4cc3ae00-ff0d-4dba-bc5d-9688c67bbef4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "b8071f85-1e5a-44bc-9d8d-b1b2349dc030", "links": [{"href": "http://localhost/v1/deploy_templates/b8071f85-1e5a-44bc-9d8d-b1b2349dc030", "rel": "self"}, {"href": "http://localhost/deploy_templates/b8071f85-1e5a-44bc-9d8d-b1b2349dc030", "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=b8071f85-1e5a-44bc-9d8d-b1b2349dc030"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi [0.057702s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-94e8abb2-8005-4ac5-b522-e8fe483bc6b2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f752f3ac-9caa-41fd-94db-14af0b1b7f63", "created_at": "2025-06-04T21:49:29.060425+00:00", "updated_at": "2025-06-04T21:49:29.072608+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63", "rel": "self"}, {"href": "http://localhost/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-87c2eb20-573d-40a5-a44f-f0563b8c2561
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f752f3ac-9caa-41fd-94db-14af0b1b7f63", "created_at": "2025-06-04T21:49:29.060425+00:00", "updated_at": "2025-06-04T21:49:29.072608+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63", "rel": "self"}, {"href": "http://localhost/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63/nodes", "rel": "bookmark"}]]}
PATCH /v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ec2b4e0-ae40-408d-ac16-6ca718eae216
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f752f3ac-9caa-41fd-94db-14af0b1b7f63", "created_at": "2025-06-04T21:49:29.060425+00:00", "updated_at": "2025-06-04T21:49:29.088608+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63", "rel": "self"}, {"href": "http://localhost/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cfa79153-98c8-4952-851e-bc22e60d4b0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f752f3ac-9caa-41fd-94db-14af0b1b7f63", "created_at": "2025-06-04T21:49:29.060425+00:00", "updated_at": "2025-06-04T21:49:29.088608+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63", "rel": "self"}, {"href": "http://localhost/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f752f3ac-9caa-41fd-94db-14af0b1b7f63/nodes", "rel": "bookmark"}]]}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.194907s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/73f51b42-1f37-4a20-beb4-d794c671ad00 WITH [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-9cb23475-22f3-44e2-ab76-2a46ecf81aca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.062211s] ... 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-fce056b2-bb7b-4a9c-9106-747d11704a36
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed [0.136282s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=12345 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-0c242e5b-d189-47ec-9fde-1af245eb8b22
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.59
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.044099s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec WITH [{'path': '/description', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0fc8e466-61f4-43c4-b45e-8983f7de67c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "8d2ec925-f3f4-4dc0-9d59-7fa663e00aec", "created_at": "2025-06-04T21:49:29.185852+00:00", "updated_at": "2025-06-04T21:49:29.195927+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec", "rel": "self"}, {"href": "http://localhost/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec/nodes", "rel": "self"}, {"href": "http://localhost/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d0a92e03-27b0-40f3-835a-f3d06c2f0f6a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "8d2ec925-f3f4-4dc0-9d59-7fa663e00aec", "created_at": "2025-06-04T21:49:29.185852+00:00", "updated_at": "2025-06-04T21:49:29.195927+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec", "rel": "self"}, {"href": "http://localhost/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec/nodes", "rel": "self"}, {"href": "http://localhost/chassis/8d2ec925-f3f4-4dc0-9d59-7fa663e00aec/nodes", "rel": "bookmark"}]]}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.128923s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/5fc42c22-b0e6-45e1-a4ab-b510d92aab47 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
Openstack-Request-Id: req-304cf8f9-8382-4548-8fb6-f02f20af1330
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.56
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow updating allocations\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.039872s] ... 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-2ea192ce-9a1d-45d8-8e50-d8247f8b00f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot overwrite UUID for an existing Chassis.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.174299s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0f70da02-b993-4364-826d-88f1b2df72ee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "45851493-527e-46cc-b5d6-df3ed6ceabff", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/45851493-527e-46cc-b5d6-df3ed6ceabff", "rel": "self"}, {"href": "http://localhost/deploy_templates/45851493-527e-46cc-b5d6-df3ed6ceabff", "rel": "bookmark"}]}, {"uuid": "b0508ff1-8665-40e2-ac90-1784d0451164", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/b0508ff1-8665-40e2-ac90-1784d0451164", "rel": "self"}, {"href": "http://localhost/deploy_templates/b0508ff1-8665-40e2-ac90-1784d0451164", "rel": "bookmark"}]}, {"uuid": "959098c5-1320-44da-8466-85a1f369302d", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/959098c5-1320-44da-8466-85a1f369302d", "rel": "self"}, {"href": "http://localhost/deploy_templates/959098c5-1320-44da-8466-85a1f369302d", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=959098c5-1320-44da-8466-85a1f369302d"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.065447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d9e26cc-e92f-4809-bd82-7c426678beeb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "4bfc999b-6538-4973-82d6-f4b0f6762451", "created_at": "2025-06-04T21:49:29.285700+00:00", "updated_at": "2025-06-04T21:49:29.300374+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451", "rel": "self"}, {"href": "http://localhost/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451/nodes", "rel": "self"}, {"href": "http://localhost/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b120424f-23da-43e1-9d4c-01d3236933da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "4bfc999b-6538-4973-82d6-f4b0f6762451", "created_at": "2025-06-04T21:49:29.285700+00:00", "updated_at": "2025-06-04T21:49:29.300374+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451", "rel": "self"}, {"href": "http://localhost/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451/nodes", "rel": "self"}, {"href": "http://localhost/chassis/4bfc999b-6538-4973-82d6-f4b0f6762451/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed_mismatch [0.115290s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?owner=12345 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-46a67ca8-94bb-4705-a50f-47dc206fa76a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Not authorized.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular [0.042563s] ... 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-890f589c-a96d-4fac-b7f4-253e89e252de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:29.334712+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-44a898ff-24f3-454c-9726-48009a31873b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:29.334712+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_allocation.TestPatch.test_update_not_found [0.141510s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/9b848b9a-02b1-436d-ad51-5c29fa0e4f3f WITH [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e0577b54-a535-4713-a602-50c58617f483
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 9b848b9a-02b1-436d-ad51-5c29fa0e4f3f could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query [0.118581s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f09ac97a-9b6b-4ec9-a241-8558e4277f03
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "ece6acbe-c98e-46ef-b0c0-1e6802bf9983", "created_at": "2025-06-04T21:49:29.349193+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ece6acbe-c98e-46ef-b0c0-1e6802bf9983", "rel": "self"}, {"href": "http://localhost/deploy_templates/ece6acbe-c98e-46ef-b0c0-1e6802bf9983", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error [0.041236s] ... 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-26e3e9f9-9470-4d84-bdec-b11d5cfde548
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found [0.040104s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/chassis/2587c7c8-2b66-4f54-b421-64f4059ab1e2 WITH [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-90ef606f-4a68-4d75-96ea-d4876934f591
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 2587c7c8-2b66-4f54-b421-64f4059ab1e2 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.042866s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb6e010a-09e8-410c-9ed1-3b7406e99091
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9db928cd-98ef-46a4-beb7-83fc9a4f049a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4188e3cb-4a28-4f01-87ad-cc2fc0a3273f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.167546s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?state=allocating WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-573ecfb3-a0b9-476f-9e27-0fefff02237a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "2f62d0e9-2f5b-4187-984b-1c2566cc4347", "created_at": "2025-06-04T21:49:29.419728+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/2f62d0e9-2f5b-4187-984b-1c2566cc4347", "rel": "self"}, {"href": "http://localhost/allocations/2f62d0e9-2f5b-4187-984b-1c2566cc4347", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "dd228a18-49ae-4273-b712-d36a56de7196", "created_at": "2025-06-04T21:49:29.420616+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/dd228a18-49ae-4273-b712-d36a56de7196", "rel": "self"}, {"href": "http://localhost/allocations/dd228a18-49ae-4273-b712-d36a56de7196", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "09c191a9-2cbf-4877-8ccf-e171af5e77b8", "created_at": "2025-06-04T21:49:29.421469+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/09c191a9-2cbf-4877-8ccf-e171af5e77b8", "rel": "self"}, {"href": "http://localhost/allocations/09c191a9-2cbf-4877-8ccf-e171af5e77b8", "rel": "bookmark"}], "node_uuid": null}]}
{3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.034081s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/driver/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f2aafe4c-43af-4443-bd6b-31384b73f019
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable [0.145421s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/df2bd8d9-eb37-4860-8b88-5f1e5e9607c1 WITH [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-582a78c0-be12-4ccd-964c-0105e7be0aba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /owner. Only the following can be updated: name, extra\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.029271s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/test/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-477d60bc-c0fd-4a92-ac88-7cf63ae12801
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.160861s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-743de255-ae98-4007-a0b3-503da3af9828
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "d7fac2cb-f2e0-41cb-a03b-0236cddbde07", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d7fac2cb-f2e0-41cb-a03b-0236cddbde07", "rel": "self"}, {"href": "http://localhost/deploy_templates/d7fac2cb-f2e0-41cb-a03b-0236cddbde07", "rel": "bookmark"}]}]}
GET /v1/deploy_templates?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5dc2c20a-6892-4701-9173-1c35467ab87f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "d7fac2cb-f2e0-41cb-a03b-0236cddbde07", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d7fac2cb-f2e0-41cb-a03b-0236cddbde07", "rel": "self"}, {"href": "http://localhost/deploy_templates/d7fac2cb-f2e0-41cb-a03b-0236cddbde07", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.034733s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2fe2f3bd-b59e-40bf-a5fc-6aa5fe81d1cb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"prop1": "Property 1. Required."}
{3} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.026887s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/bad_driver/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f785b373-2cd0-4ce7-92e2-d80735546fe5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.162042s] ... 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-e4c81491-b802-452a-83c3-9a8283689719
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "42c39589-5d44-4813-a14d-2da65e4ceb51", "created_at": "2025-06-04T21:49:29.596889+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/42c39589-5d44-4813-a14d-2da65e4ceb51", "rel": "self"}, {"href": "http://localhost/allocations/42c39589-5d44-4813-a14d-2da65e4ceb51", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.066808s] ... 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-64f67a4c-4365-47f7-8826-eed8b703e607
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-06-04T21:49:29.643751+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_chassis.TestPost.test_create_chassis [0.200053s] ... 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-6210a967-df03-4d94-bd45-ccef9252bbb3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e4ac7ad3-1d33-4047-9860-c5c71909b5c5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.199116s] ... 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-90e6ae3e-7142-4e36-9563-3083f9fa19d4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "fef903ee-c118-47ba-b574-a8bc165a09d3", "created_at": "2025-06-04T21:49:29.695552+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/fef903ee-c118-47ba-b574-a8bc165a09d3", "rel": "self"}, {"href": "http://localhost/deploy_templates/fef903ee-c118-47ba-b574-a8bc165a09d3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "41052c5f-e0b0-4102-9066-41e4ac28425c", "created_at": "2025-06-04T21:49:29.688650+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/41052c5f-e0b0-4102-9066-41e4ac28425c", "rel": "self"}, {"href": "http://localhost/deploy_templates/41052c5f-e0b0-4102-9066-41e4ac28425c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "200c5adb-9924-450e-8a9e-74b3520af460", "created_at": "2025-06-04T21:49:29.678974+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/200c5adb-9924-450e-8a9e-74b3520af460", "rel": "self"}, {"href": "http://localhost/deploy_templates/200c5adb-9924-450e-8a9e-74b3520af460", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.119666s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/0bcd8592-b34f-45cc-b33b-687bd094e6dc 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_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.098450s] ... 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-e5e96849-be7d-4b81-a609-fdccb54e971d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.149224s] ... 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-b39f74d0-8e48-4988-9e5f-e9d5ee305db6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:29.859523+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-b3563a81-cb4d-4910-aa0e-542611839f7b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:29.859523+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"foo": 123}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.119084s] ... 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_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.132266s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?detail=False&fields=steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e5ec5333-4595-4c88-bd0a-1811a0584875
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"links": [{"href": "http://localhost/v1/deploy_templates/00b3a719-8c4c-4c78-b624-23433c70eda1", "rel": "self"}, {"href": "http://localhost/deploy_templates/00b3a719-8c4c-4c78-b624-23433c70eda1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false [0.338569s] ... 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-c0554784-1ee3-4123-9b4c-503db7de4eb2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-06-04T21:49:29.995997+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_chassis.TestPost.test_create_chassis_error [0.121475s] ... 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-48ac5dbf-ce4e-4267-b645-21cbe0215874
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version [0.037900s] ... 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-41f1b867-5db7-4023-ac88-6cbfa4fce891
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.167342s] ... 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-ffa649b7-54d2-4f1b-8c8b-f6f7c0b0d062
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"extra": {}, "name": null, "links": [{"href": "http://localhost/v1/allocations/4ec14064-9b8d-4670-96db-51509fd3772b", "rel": "self"}, {"href": "http://localhost/allocations/4ec14064-9b8d-4670-96db-51509fd3772b", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.039268s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.119244s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c33e5407-7860-4722-861a-98a9077cdad3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail [0.052306s] ... 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-62794178-21eb-4830-8869-e7ac070c0601
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-06-04T21:49:30.131154+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.161116s] ... 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/95d7a47b-3703-468c-b9b8-3a7118c19fdb
Openstack-Request-Id: req-9cb35353-7358-4975-af0b-659e8460e250
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "95d7a47b-3703-468c-b9b8-3a7118c19fdb", "created_at": "2025-06-04T21:49:30.136321+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/95d7a47b-3703-468c-b9b8-3a7118c19fdb", "rel": "self"}, {"href": "http://localhost/chassis/95d7a47b-3703-468c-b9b8-3a7118c19fdb", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/95d7a47b-3703-468c-b9b8-3a7118c19fdb/nodes", "rel": "self"}, {"href": "http://localhost/chassis/95d7a47b-3703-468c-b9b8-3a7118c19fdb/nodes", "rel": "bookmark"}]]}
GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b1289791-c0f5-4e25-b77e-8bd8322b6dea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": [{"uuid": "95d7a47b-3703-468c-b9b8-3a7118c19fdb", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/95d7a47b-3703-468c-b9b8-3a7118c19fdb", "rel": "self"}, {"href": "http://localhost/chassis/95d7a47b-3703-468c-b9b8-3a7118c19fdb", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields [0.044498s] ... 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-ec4d77a2-eeca-4646-ac0c-7cc3a3d730e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid detail: Unrecognized value 'True?fields=name,read_only', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields [0.041042s] ... 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-852a29d5-02de-4836-8680-4754ad91e52d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"bios": [{"created_at": "2025-06-04T21:49:30.219738+00:00", "updated_at": null, "name": "virtualization", "read_only": false, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.112613s] ... 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_allocation.TestListAllocations.test_get_collection_custom_fields [0.182825s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4330e5cd-2e8a-472a-8a83-0d374d06abd9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "9829b685-51ed-4df7-a551-8acbcdfa8d6a", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/9829b685-51ed-4df7-a551-8acbcdfa8d6a", "rel": "self"}, {"href": "http://localhost/allocations/9829b685-51ed-4df7-a551-8acbcdfa8d6a", "rel": "bookmark"}]}, {"uuid": "77210f1a-03d1-4b33-a7ca-4cb0b60570e1", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/77210f1a-03d1-4b33-a7ca-4cb0b60570e1", "rel": "self"}, {"href": "http://localhost/allocations/77210f1a-03d1-4b33-a7ca-4cb0b60570e1", "rel": "bookmark"}]}, {"uuid": "2cdeb78c-9595-4ba8-9fc7-86194b0e3c5a", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/2cdeb78c-9595-4ba8-9fc7-86194b0e3c5a", "rel": "self"}, {"href": "http://localhost/allocations/2cdeb78c-9595-4ba8-9fc7-86194b0e3c5a", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version [0.039823s] ... 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-5b9e7e5b-e5ba-436a-bc60-af8d5da0024f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?fields=['name', 'read_only'] received.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.126248s] ... 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-1d130985-5da9-47c2-9a29-ec122b00a598
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 1334 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.089695s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?fields=node_uuid&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bb606bef-16d8-4571-8dfb-8eb5f03c1585
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"links": [{"href": "http://localhost/v1/allocations/c698cfcb-d172-4cf7-8505-56da576c8bdd", "rel": "self"}, {"href": "http://localhost/allocations/c698cfcb-d172-4cf7-8505-56da576c8bdd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"links": [{"href": "http://localhost/v1/allocations/d5697fc0-8cf2-4d17-9dae-bde6d50a8ee9", "rel": "self"}, {"href": "http://localhost/allocations/d5697fc0-8cf2-4d17-9dae-bde6d50a8ee9", "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=d5697fc0-8cf2-4d17-9dae-bde6d50a8ee9"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.118585s] ... 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-ab74da23-09f0-4a6a-bb06-4674fa40dd80
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"virtualization": {"created_at": "2025-06-04T21:49:30.339955+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"}]}}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.160054s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e10c7082-62d0-4d4f-9bd6-79fd68e0aa4a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "f5d88206-729f-4c3d-9176-27d51423ff18", "links": [{"href": "http://localhost/v1/deploy_templates/f5d88206-729f-4c3d-9176-27d51423ff18", "rel": "self"}, {"href": "http://localhost/deploy_templates/f5d88206-729f-4c3d-9176-27d51423ff18", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "3f177222-ed8d-4235-935d-12dfaaf5c946", "links": [{"href": "http://localhost/v1/deploy_templates/3f177222-ed8d-4235-935d-12dfaaf5c946", "rel": "self"}, {"href": "http://localhost/deploy_templates/3f177222-ed8d-4235-935d-12dfaaf5c946", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "d25cfd0a-1032-4432-bd61-a8dede7d7e2b", "links": [{"href": "http://localhost/v1/deploy_templates/d25cfd0a-1032-4432-bd61-a8dede7d7e2b", "rel": "self"}, {"href": "http://localhost/deploy_templates/d25cfd0a-1032-4432-bd61-a8dede7d7e2b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.134137s] ... 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-8dbc41a7-3a88-43a9-b2bb-9eaefc2efe57
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.104434s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/fa84bc62-6f16-4e2f-a2b3-8c16f184e062?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d4c43ecf-de7f-4df1-9046-95cf2145304e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.130338s] ... 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-cb926781-69f0-47b4-adc7-03c760e58e38
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one [0.124209s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/b894e2d7-88d0-4dad-b27a-6992440134e7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4a57893f-61aa-49d8-964c-a491fbdd597c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b894e2d7-88d0-4dad-b27a-6992440134e7", "created_at": "2025-06-04T21:49:30.552061+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/b894e2d7-88d0-4dad-b27a-6992440134e7", "rel": "self"}, {"href": "http://localhost/allocations/b894e2d7-88d0-4dad-b27a-6992440134e7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.166096s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?fields=name&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2ad159b-fdfa-4682-b71b-1e54f781b3d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/612572d7-c55b-4453-9b65-5a8ae137a645", "rel": "self"}, {"href": "http://localhost/deploy_templates/612572d7-c55b-4453-9b65-5a8ae137a645", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/2a3214e7-3288-4a54-97ff-835626903fde", "rel": "self"}, {"href": "http://localhost/deploy_templates/2a3214e7-3288-4a54-97ff-835626903fde", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=2a3214e7-3288-4a54-97ff-835626903fde"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.172232s] ... 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-8a57f93d-ba99-46e2-91d7-216bd49fedfd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:30.581412+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-5f9aa6c0-6805-4b0f-bae1-9a86adccefb2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:30.581412+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_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.121356s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_custom_fields [0.133731s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/63233a47-06c4-4e74-b288-4fc5994377be?fields=resource_class,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-19a9247b-d172-4773-a39e-91d8cda9e8ad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"extra": {}, "resource_class": "baremetal", "links": [{"href": "http://localhost/v1/allocations/63233a47-06c4-4e74-b288-4fc5994377be", "rel": "self"}, {"href": "http://localhost/allocations/63233a47-06c4-4e74-b288-4fc5994377be", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry [0.117844s] ... 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-3c6345ef-3dce-49f1-93a6-5754a2925ee0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{"virtualization": {"created_at": "2025-06-04T21:49:30.737405+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_chassis.TestPost.test_create_chassis_valid_extra [0.174478s] ... 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-2c6a4896-cc05-4896-b14d-033b7b6eb639
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:30.767373+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-6bc7c33c-8e87-4255-b346-71a4484090ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:49:30.767373+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"}]]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.074289s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/4ace3405-c8ec-4551-bff3-2a26956036df 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_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.067132s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/ba!na!na! WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_get_child_node [0.096820s] ... 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-1e4b3e4f-6c06-4f0b-9a03-9cb5d0c7a5f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"children": ["8919e42b-e98a-4300-ba67-0c635ef1aa62"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_node_children_by_single_node [0.114441s] ... 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-7a0fa82f-60dc-4fb6-959c-f3bf9a9fb20d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"children": ["2e643927-8faf-497e-8f27-0398895fa179", "f9fdc965-9e26-4bde-85d0-cc618b963a52"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_double_json_in_name [0.120933s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/2650a038-ff00-4488-bdcf-2521605fd14b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8d0d36db-daad-45a2-a633-8522005e1907
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "2650a038-ff00-4488-bdcf-2521605fd14b", "created_at": "2025-06-04T21:49:30.973413+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/2650a038-ff00-4488-bdcf-2521605fd14b", "rel": "self"}, {"href": "http://localhost/allocations/2650a038-ff00-4488-bdcf-2521605fd14b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.233970s] ... 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-9cbad8bc-ea3b-42d5-a69c-20bb53d845aa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes [0.101965s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-264af07c-8a45-4656-8b48-545173dae563
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.092694s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/5de49b93-cb9e-4734-a039-4cf4acf28542.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-79c5da06-26c2-4199-8028-2c7d37c137bc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "5de49b93-cb9e-4734-a039-4cf4acf28542", "created_at": "2025-06-04T21:49:31.066244+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/5de49b93-cb9e-4734-a039-4cf4acf28542", "rel": "self"}, {"href": "http://localhost/allocations/5de49b93-cb9e-4734-a039-4cf4acf28542", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field [0.098426s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.081437s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/bd95b923-76ef-440d-bb2d-d0ee6b1b9008 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6b6d97e2-b386-4519-aa10-09b4b620b676
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "bd95b923-76ef-440d-bb2d-d0ee6b1b9008", "created_at": "2025-06-04T21:49:31.147242+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/bd95b923-76ef-440d-bb2d-d0ee6b1b9008", "rel": "self"}, {"href": "http://localhost/allocations/bd95b923-76ef-440d-bb2d-d0ee6b1b9008", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_cannot_see_children_if_not_owned [0.119587s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?parent_node=66996e0b-d29e-4fac-913b-33d90f398024 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d2661177-f330-49fe-8f32-fa55c011a678
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_event_type [0.103984s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_not_found [0.081456s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/5b63dde0-7685-44d7-acc5-a7f393e2998d.json WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f324b770-0dca-4928-94a2-931ffdddbc92
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5b63dde0-7685-44d7-acc5-a7f393e2998d.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.099567s] ... 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-045619d1-3989-4638-b4ed-e9872793a46b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "e98f1a26-aeed-4b1e-9ff3-b3c3196b1401", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/e98f1a26-aeed-4b1e-9ff3-b3c3196b1401", "rel": "self"}, {"href": "http://localhost/nodes/e98f1a26-aeed-4b1e-9ff3-b3c3196b1401", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event [0.095556s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_lists_empty_for_specific_parent [0.097730s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?parent_node=f100c40e-c71d-448b-b7b9-a646b62a3bc7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9b721cbd-9db5-42fc-bce1-6a0ed33a267f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event [0.109808s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type [0.080674s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_children_only_parent [0.138366s] ... 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-6139631c-4aab-41d9-9576-df4f72e249ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "lessee": "b33d7fcb-a277-44b6-a2a2-50be6ce58e26", "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"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.966455s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/9a4bf2d5-1eae-40ce-b4a8-524a65c5b1ba?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2f6f8a28-b89b-4bbc-a3da-00f93edd2ce5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_include_children [0.127232s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?include_children=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1211f69d-6158-4df7-9d75-156128b747db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "465cfd5d-0186-46a5-ba54-d085ee761112", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/465cfd5d-0186-46a5-ba54-d085ee761112", "rel": "self"}, {"href": "http://localhost/nodes/465cfd5d-0186-46a5-ba54-d085ee761112", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.132407s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/83f4c008-52e1-438a-8ae5-f74f70ddfddc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2ed9e67d-5335-4dd3-9eaa-5866a25dbb01
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "83f4c008-52e1-438a-8ae5-f74f70ddfddc", "created_at": "2025-06-04T21:49:31.660975+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/83f4c008-52e1-438a-8ae5-f74f70ddfddc", "rel": "self"}, {"href": "http://localhost/deploy_templates/83f4c008-52e1-438a-8ae5-f74f70ddfddc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events [0.151176s] ... 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-90586d14-0b39-4162-ad2a-2a6818d0cff6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event [0.079576s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-26dd9df4-7e1d-45de-b132-630698a71568
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event [0.038017s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d770018e-d7c8-4cc7-8332-abfd03ebfcfa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.123955s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/2a316c18-733f-482b-a04c-a4e1c63ebc82?fields=name,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8d08c862-cf14-4479-9e62-2024b9191e36
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/2a316c18-733f-482b-a04c-a4e1c63ebc82", "rel": "self"}, {"href": "http://localhost/deploy_templates/2a316c18-733f-482b-a04c-a4e1c63ebc82", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version [0.036086s] ... 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-e451210f-d35b-4065-980b-c324afe1a7c7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach [0.211109s] ... 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-bf3e2789-d686-4b98-a3d8-5f529d19f002
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.078715s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/d184f67d-70df-41ca-aebd-e17ba0c2fe31 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow deploy templates\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events [0.058015s] ... 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-5e8a63ea-2e17-432e-ba54-32f9a8a97c2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events [0.043827s] ... 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-97693eee-c66a-441b-bb6d-bf7948e3e1d5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events [0.039264s] ... 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-e2ffb0aa-683f-4477-8b07-be66852b0294
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.087008s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/eddaa24f-7c65-429e-9e2e-fc3663908b08.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-702b0f8e-a58d-47a4-ac22-d83bf238bc6a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "eddaa24f-7c65-429e-9e2e-fc3663908b08", "created_at": "2025-06-04T21:49:31.976898+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/eddaa24f-7c65-429e-9e2e-fc3663908b08", "rel": "self"}, {"href": "http://localhost/deploy_templates/eddaa24f-7c65-429e-9e2e-fc3663908b08", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id [0.049403s] ... 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-6a7f36ce-c34c-480a-94f4-c0150d67e706
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_device_type [0.168812s] ... 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-8325788e-aa0a-43f8-b9bb-0b7b88abff12
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'cat' is not one of ['disk', 'cdrom', 'floppy']\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.807443s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/892b1e01-170c-4e03-bfe9-7d70e2f96533 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c5302335-f33c-4c0a-a196-c8539fdf8259
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "892b1e01-170c-4e03-bfe9-7d70e2f96533", "created_at": "2025-06-04T21:49:31.314563+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/892b1e01-170c-4e03-bfe9-7d70e2f96533", "rel": "self"}, {"href": "http://localhost/allocations/892b1e01-170c-4e03-bfe9-7d70e2f96533", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type [0.045154s] ... 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-90d23d12-fe42-4b90-a28c-072f83cbd9cf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json_not_found [0.096202s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/eca61115-2764-4c93-b887-f6252eace1a2.json WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b8c2d0c5-edc0-428f-9706-33623b9736c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template eca61115-2764-4c93-b887-f6252eace1a2.json could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id [0.043897s] ... 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-ca502364-5af9-499c-85c9-1ec5fb138b96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address [0.048179s] ... 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-0f976252-f014-447b-b588-5438f13b4927
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_image_url [0.139394s] ... 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-3bf043fc-923f-458f-b93c-5b4548583103
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unsupported or missing URL scheme: \", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.094466s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/524b258d-8571-4ee1-944b-090f5f021bf8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9ea06508-da06-4109-8a32-03ee2ebff90b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "524b258d-8571-4ee1-944b-090f5f021bf8", "created_at": "2025-06-04T21:49:32.158330+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/524b258d-8571-4ee1-944b-090f5f021bf8", "rel": "self"}, {"href": "http://localhost/deploy_templates/524b258d-8571-4ee1-944b-090f5f021bf8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field [0.144552s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/5e4c25c9-9024-4147-a755-8e412da0dab3?fields=owner WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b1300bc7-f774-44d5-8db3-b76875cdd746
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"owner": "12345", "links": [{"href": "http://localhost/v1/allocations/5e4c25c9-9024-4147-a755-8e412da0dab3", "rel": "self"}, {"href": "http://localhost/allocations/5e4c25c9-9024-4147-a755-8e412da0dab3", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id [0.043992s] ... 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-6fc1fd09-3adc-4019-a517-75da17f8cb50
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status [0.044732s] ... 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-27fc8da5-3987-45d5-b60f-10c1f8350ed4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.113834s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/d53f10de-db30-4b94-b12a-a885d69968bd WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f172611d-f40b-4575-99df-6350e4a823b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d53f10de-db30-4b94-b12a-a885d69968bd", "created_at": "2025-06-04T21:49:32.271183+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d53f10de-db30-4b94-b12a-a885d69968bd", "rel": "self"}, {"href": "http://localhost/deploy_templates/d53f10de-db30-4b94-b12a-a885d69968bd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/d53f10de-db30-4b94-b12a-a885d69968bd WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2a1c376d-af92-4c29-999c-52fe77b4bea4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d53f10de-db30-4b94-b12a-a885d69968bd", "created_at": "2025-06-04T21:49:32.271183+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d53f10de-db30-4b94-b12a-a885d69968bd", "rel": "self"}, {"href": "http://localhost/deploy_templates/d53f10de-db30-4b94-b12a-a885d69968bd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /deploy_templates/d53f10de-db30-4b94-b12a-a885d69968bd WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fd902adf-82ae-494d-adc5-55cf2756aadf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d53f10de-db30-4b94-b12a-a885d69968bd", "created_at": "2025-06-04T21:49:32.271183+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d53f10de-db30-4b94-b12a-a885d69968bd", "rel": "self"}, {"href": "http://localhost/deploy_templates/d53f10de-db30-4b94-b12a-a885d69968bd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_device_type [0.161839s] ... 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-d3a2f515-7905-4a38-a590-24261bde22b7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'device_type' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.217063s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/7285e3f4-be23-4c8a-9696-7db844b90211 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cef65d16-1ae0-4fd2-84b6-52b36844094b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "7285e3f4-be23-4c8a-9696-7db844b90211", "created_at": "2025-06-04T21:49:32.347657+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/7285e3f4-be23-4c8a-9696-7db844b90211", "rel": "self"}, {"href": "http://localhost/allocations/7285e3f4-be23-4c8a-9696-7db844b90211", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/allocations/7285e3f4-be23-4c8a-9696-7db844b90211 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-49b89799-ae50-4672-a4aa-f1d25b7a6c05
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "7285e3f4-be23-4c8a-9696-7db844b90211", "created_at": "2025-06-04T21:49:32.347657+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/7285e3f4-be23-4c8a-9696-7db844b90211", "rel": "self"}, {"href": "http://localhost/allocations/7285e3f4-be23-4c8a-9696-7db844b90211", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /allocations/7285e3f4-be23-4c8a-9696-7db844b90211 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2c658cb1-aee8-4281-8fce-bc32ae0b8e7c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "7285e3f4-be23-4c8a-9696-7db844b90211", "created_at": "2025-06-04T21:49:32.347657+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/7285e3f4-be23-4c8a-9696-7db844b90211", "rel": "self"}, {"href": "http://localhost/allocations/7285e3f4-be23-4c8a-9696-7db844b90211", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.120035s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-148f83ec-3bf3-4c3b-81ba-ce54a5458c2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "75192aad-0601-48c1-bda0-63e1d0986f73", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/75192aad-0601-48c1-bda0-63e1d0986f73", "rel": "self"}, {"href": "http://localhost/deploy_templates/75192aad-0601-48c1-bda0-63e1d0986f73", "rel": "bookmark"}]}, {"uuid": "6e2de7cc-3e09-4e8a-b54c-2a497662bc27", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/6e2de7cc-3e09-4e8a-b54c-2a497662bc27", "rel": "self"}, {"href": "http://localhost/deploy_templates/6e2de7cc-3e09-4e8a-b54c-2a497662bc27", "rel": "bookmark"}]}, {"uuid": "4129bb44-f7b1-4ecf-a5f1-0d084e4ccdbd", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/4129bb44-f7b1-4ecf-a5f1-0d084e4ccdbd", "rel": "self"}, {"href": "http://localhost/deploy_templates/4129bb44-f7b1-4ecf-a5f1-0d084e4ccdbd", "rel": "bookmark"}]}, {"uuid": "682249b1-bfcb-461b-8b2e-0102301d680f", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/682249b1-bfcb-461b-8b2e-0102301d680f", "rel": "self"}, {"href": "http://localhost/deploy_templates/682249b1-bfcb-461b-8b2e-0102301d680f", "rel": "bookmark"}]}, {"uuid": "aa82477d-7dd3-435b-8eb3-6e6b0d4d2656", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/deploy_templates/aa82477d-7dd3-435b-8eb3-6e6b0d4d2656", "rel": "self"}, {"href": "http://localhost/deploy_templates/aa82477d-7dd3-435b-8eb3-6e6b0d4d2656", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_image_url [0.124483s] ... 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-f67c4ada-1d53-4577-b832-70668bcfaf85
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'image_url' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.094143s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0158549c-aec6-4eff-91b9-c2dfc536bafa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "14d293db-de9f-4ea0-9106-eaae9f8712cf", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/14d293db-de9f-4ea0-9106-eaae9f8712cf", "rel": "self"}, {"href": "http://localhost/deploy_templates/14d293db-de9f-4ea0-9106-eaae9f8712cf", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.085670s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/aaf63b98-fc27-4801-9831-b14271a3d760 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f59a7929-11b4-48d8-b336-a82c256cd1d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "aaf63b98-fc27-4801-9831-b14271a3d760", "created_at": "2025-06-04T21:49:32.611361+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/aaf63b98-fc27-4801-9831-b14271a3d760", "rel": "self"}, {"href": "http://localhost/deploy_templates/aaf63b98-fc27-4801-9831-b14271a3d760", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.214599s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-796e5eb0-ae55-40f7-a83a-fb48585b9abc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "3eda334e-141e-4e61-8030-b44b43060df9", "created_at": "2025-06-04T21:49:32.551866+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/3eda334e-141e-4e61-8030-b44b43060df9", "rel": "self"}, {"href": "http://localhost/allocations/3eda334e-141e-4e61-8030-b44b43060df9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "0ecc1971-438d-4d99-8d4c-fd0288bc55f2", "created_at": "2025-06-04T21:49:32.558551+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/0ecc1971-438d-4d99-8d4c-fd0288bc55f2", "rel": "self"}, {"href": "http://localhost/allocations/0ecc1971-438d-4d99-8d4c-fd0288bc55f2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e7d8c46c-5fb8-4949-b0ca-35053ee2aa09", "created_at": "2025-06-04T21:49:32.559419+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/e7d8c46c-5fb8-4949-b0ca-35053ee2aa09", "rel": "self"}, {"href": "http://localhost/allocations/e7d8c46c-5fb8-4949-b0ca-35053ee2aa09", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "bad94da9-164d-40ff-b565-ccc958d98768", "created_at": "2025-06-04T21:49:32.560242+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/bad94da9-164d-40ff-b565-ccc958d98768", "rel": "self"}, {"href": "http://localhost/allocations/bad94da9-164d-40ff-b565-ccc958d98768", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "671f8d8c-ed7c-48ac-873b-27b5e6b1cef4", "created_at": "2025-06-04T21:49:32.569212+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/671f8d8c-ed7c-48ac-873b-27b5e6b1cef4", "rel": "self"}, {"href": "http://localhost/allocations/671f8d8c-ed7c-48ac-873b-27b5e6b1cef4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_required_only [0.173927s] ... 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-90ff663b-6e75-491e-9c05-860cbc696c7b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.099747s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-06f69de6-e15d-4bba-8746-abaa55f7f416
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "2757ff75-7afd-48a9-a080-b734aed1d841", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/2757ff75-7afd-48a9-a080-b734aed1d841", "rel": "self"}, {"href": "http://localhost/deploy_templates/2757ff75-7afd-48a9-a080-b734aed1d841", "rel": "bookmark"}]}, {"uuid": "860499a2-953f-46d9-9975-7b88c6b1ce0b", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/860499a2-953f-46d9-9975-7b88c6b1ce0b", "rel": "self"}, {"href": "http://localhost/deploy_templates/860499a2-953f-46d9-9975-7b88c6b1ce0b", "rel": "bookmark"}]}, {"uuid": "fc56e9fa-cc51-4be3-9f91-5c78f36bbb22", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/fc56e9fa-cc51-4be3-9f91-5c78f36bbb22", "rel": "self"}, {"href": "http://localhost/deploy_templates/fc56e9fa-cc51-4be3-9f91-5c78f36bbb22", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_wrong_version [0.104467s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia WITH {'device_type': 'cdrom', 'image_url': 'http://image'} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events [0.503418s] ... 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-fdc7300a-61fe-4a39-8fe2-d2acf54795d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one [0.120697s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-217938a0-753d-4199-8d57-5b5f0921eda9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "2de136f9-65c0-4569-a725-c89eee4b155c", "created_at": "2025-06-04T21:49:32.746558+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/2de136f9-65c0-4569-a725-c89eee4b155c", "rel": "self"}, {"href": "http://localhost/allocations/2de136f9-65c0-4569-a725-c89eee4b155c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.134645s] ... 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-f27a40f3-bdc8-4fe6-a39d-acf3a8a7c509
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "f89f4ba7-6263-4eeb-a5bb-1935f0815019", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/f89f4ba7-6263-4eeb-a5bb-1935f0815019", "rel": "self"}, {"href": "http://localhost/deploy_templates/f89f4ba7-6263-4eeb-a5bb-1935f0815019", "rel": "bookmark"}]}, {"uuid": "82de7725-0bc5-4818-8d16-5b8126fb1fab", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/82de7725-0bc5-4818-8d16-5b8126fb1fab", "rel": "self"}, {"href": "http://localhost/deploy_templates/82de7725-0bc5-4818-8d16-5b8126fb1fab", "rel": "bookmark"}]}, {"uuid": "e8289463-d22b-470f-b8bf-031b713a29dd", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/e8289463-d22b-470f-b8bf-031b713a29dd", "rel": "self"}, {"href": "http://localhost/deploy_templates/e8289463-d22b-470f-b8bf-031b713a29dd", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property [0.103483s] ... 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-3860e765-9add-4d49-a6ea-4b313561831f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_everything [0.136575s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 204 No Content
Openstack-Request-Id: req-d3af3661-3d19-487a-968c-75661fe9f3d5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key [0.142715s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-54898233-de8f-4b01-99a2-3dd8fa26ce19
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "30352eb5-f9fe-415c-a2cc-4154f3f2c019", "created_at": "2025-06-04T21:49:32.886402+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/30352eb5-f9fe-415c-a2cc-4154f3f2c019", "rel": "self"}, {"href": "http://localhost/allocations/30352eb5-f9fe-415c-a2cc-4154f3f2c019", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8c1c226d-a088-4b94-a493-16a054a14380", "created_at": "2025-06-04T21:49:32.884962+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/8c1c226d-a088-4b94-a493-16a054a14380", "rel": "self"}, {"href": "http://localhost/allocations/8c1c226d-a088-4b94-a493-16a054a14380", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d262f2e6-0ea9-4983-9a56-2a16f79dd233", "created_at": "2025-06-04T21:49:32.883047+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/d262f2e6-0ea9-4983-9a56-2a16f79dd233", "rel": "self"}, {"href": "http://localhost/allocations/d262f2e6-0ea9-4983-9a56-2a16f79dd233", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.087424s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b18443f1-c5f5-42ce-936a-634eab191279
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/deploy_templates?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-91de9547-a457-4e14-856b-8f15eff94c2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/deploy_templates?sort_key=steps WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-57434bed-b589-4269-a423-2f068a2457cb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_by_uuid [0.078535s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/inspection_rules/f9ce9a5f-01fd-4feb-8213-48e50f6a1248 GOT Response: 204 No Content
Openstack-Request-Id: req-929fc284-4119-44c2-852a-927d0a39acff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_several_via_argument [0.130766s] ... 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-18f6d26c-b86d-496c-9ada-1de6887449f6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_invalid_api_version [0.105904s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/inspection_rules/0eeb7df6-178b-4e99-aef1-7d890540b873 GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow inspection rules\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.140564s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?sort_key=name WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0d3e958c-dcb5-468e-8f29-edeb4f5696ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "8672e69e-76fb-4fda-b6c6-79314070d048", "created_at": "2025-06-04T21:49:33.043461+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/8672e69e-76fb-4fda-b6c6-79314070d048", "rel": "self"}, {"href": "http://localhost/allocations/8672e69e-76fb-4fda-b6c6-79314070d048", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1f8a4427-58ec-4bb1-9923-e68d80bfd945", "created_at": "2025-06-04T21:49:33.042603+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/1f8a4427-58ec-4bb1-9923-e68d80bfd945", "rel": "self"}, {"href": "http://localhost/allocations/1f8a4427-58ec-4bb1-9923-e68d80bfd945", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "174650cb-e087-483e-9af6-42523062924f", "created_at": "2025-06-04T21:49:33.041710+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/174650cb-e087-483e-9af6-42523062924f", "rel": "self"}, {"href": "http://localhost/allocations/174650cb-e087-483e-9af6-42523062924f", "rel": "bookmark"}], "node_uuid": null}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_argument [0.088970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom GOT Response: 204 No Content
Openstack-Request-Id: req-8bc84d7a-7924-4664-bdd4-4b403a492c1f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.181670s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/cc968017-c351-4b19-b13f-b09e7ffcb04c 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-5acbabdc-acb7-4d76-a0a9-2a4a32a38776
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "cc968017-c351-4b19-b13f-b09e7ffcb04c", "created_at": "2025-06-04T21:49:33.024911+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/cc968017-c351-4b19-b13f-b09e7ffcb04c", "rel": "self"}, {"href": "http://localhost/deploy_templates/cc968017-c351-4b19-b13f-b09e7ffcb04c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_empty [0.084405s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a7cd6cfa-c867-4e47-bf8c-453c5981780e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"inspection_rules": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_url [0.091764s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia/cdrom GOT Response: 204 No Content
Openstack-Request-Id: req-addc4008-cdd2-45aa-99bc-0139aa8770bc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.098807s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/bcc222e4-168c-4b69-99cf-9d675bb411f4 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7d5249a4-98b5-45f3-b2fa-94b761a44ec2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all [0.090122s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bfacf384-7a1b-4b4e-a982-6272acd28da6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"inspection_rules": [{"uuid": "6eec1912-eed0-47ac-aae3-1e6e7d8d3446", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/6eec1912-eed0-47ac-aae3-1e6e7d8d3446", "rel": "self"}, {"href": "http://localhost/inspection/6eec1912-eed0-47ac-aae3-1e6e7d8d3446", "rel": "bookmark"}]}, {"uuid": "cd41f023-723c-44b7-9e90-be027c27d452", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/cd41f023-723c-44b7-9e90-be027c27d452", "rel": "self"}, {"href": "http://localhost/inspection/cd41f023-723c-44b7-9e90-be027c27d452", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid [0.185212s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-031430d3-c5f9-474c-839a-2b645b1345ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/allocations?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-724d655a-bc21-4450-8447-b9c05f9ce407
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/allocations?sort_key=internal_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b0bc60bf-2f37-4136-aedb-bb3ac5378411
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"internal_info\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/allocations?sort_key=properties WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-668e0702-798d-45ce-bf44-739c3effbb38
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_device_types [0.084912s] ... 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-1074afa6-9fdf-4c1c-8a53-389870ab582b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid device type(s) cat (valid are disk, cdrom, floppy)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all_invalid_api_version [0.071858s] ... 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\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.100955s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/96183fa5-862a-4382-876a-7cf5c1fc9a1a 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-07cb113c-cf1a-4087-9c4b-987b1605de7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_get_next [0.077312s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_version [0.082490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next [0.084419s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one [0.112683s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules/a6a46a4c-91d7-4fcb-b0b7-630fc41411cf WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c59e56d8-be0c-4dda-a12a-ae3a7a9c491b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a6a46a4c-91d7-4fcb-b0b7-630fc41411cf", "created_at": "2025-06-04T21:49:33.391755+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/a6a46a4c-91d7-4fcb-b0b7-630fc41411cf", "rel": "self"}, {"href": "http://localhost/inspection/a6a46a4c-91d7-4fcb-b0b7-630fc41411cf", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get [0.079042s] ... 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-a6527e5c-5d17-47b2-b12d-111625a96951
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
[{"media_types": ["CD", "DVD"], "inserted": "false", "image": ""}, {"media_types": ["Floppy", "USBStick"], "inserted": "false", "image": ""}]
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.134260s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/94f8ce54-ddae-492b-a9d6-c88db184ef9c WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f1ac0528-1958-4a8d-9212-4ffdbd1b4921
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one_invalid_api_version [0.064355s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules/ec22f405-dd52-4201-99ea-2b4810446b67 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow inspection rules\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links [0.108414s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get_wrong_version [0.077061s] ... 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-d8a600e5-4bbc-4cab-aeb9-f6836a5ee6fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.92
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_rule_data [0.099376s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': '36ba6a71-79b9-44d7-bdfd-df75a69511bc', '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/36ba6a71-79b9-44d7-bdfd-df75a69511bc
Openstack-Request-Id: req-d3cb27aa-1b0d-47ac-b472-9cf02ccec7a7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "36ba6a71-79b9-44d7-bdfd-df75a69511bc", "created_at": "2025-06-04T21:49:33.580414+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/36ba6a71-79b9-44d7-bdfd-df75a69511bc", "rel": "self"}, {"href": "http://localhost/inspection/36ba6a71-79b9-44d7-bdfd-df75a69511bc", "rel": "bookmark"}]}
GET /v1/inspection_rules/36ba6a71-79b9-44d7-bdfd-df75a69511bc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0db052c9-7d4f-44a0-96bc-0fed911e93b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "36ba6a71-79b9-44d7-bdfd-df75a69511bc", "created_at": "2025-06-04T21:49:33.580414+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/36ba6a71-79b9-44d7-bdfd-df75a69511bc", "rel": "self"}, {"href": "http://localhost/inspection/36ba6a71-79b9-44d7-bdfd-df75a69511bc", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.149806s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/cb0cc422-d883-413f-a9e8-28efe24b072b WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af47fde5-545b-4c41-92a5-f1199ff0ec41
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "cb0cc422-d883-413f-a9e8-28efe24b072b", "created_at": "2025-06-04T21:49:33.548564+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/cb0cc422-d883-413f-a9e8-28efe24b072b", "rel": "self"}, {"href": "http://localhost/deploy_templates/cb0cc422-d883-413f-a9e8-28efe24b072b", "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_collection_links [0.149030s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c32c5096-9b2d-47a1-a627-fdaf1564411e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "3ffd1fcd-3397-4079-9a9b-58a124a6456d", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/3ffd1fcd-3397-4079-9a9b-58a124a6456d", "rel": "self"}, {"href": "http://localhost/conductors/3ffd1fcd-3397-4079-9a9b-58a124a6456d", "rel": "bookmark"}], "alive": true}, {"hostname": "d6de2c1a-3658-4d60-ab1d-6f8622c5510b", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/d6de2c1a-3658-4d60-ab1d-6f8622c5510b", "rel": "self"}, {"href": "http://localhost/conductors/d6de2c1a-3658-4d60-ab1d-6f8622c5510b", "rel": "bookmark"}], "alive": true}, {"hostname": "01b66dc5-5e1c-4bba-8cda-4fa2244a0436", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/01b66dc5-5e1c-4bba-8cda-4fa2244a0436", "rel": "self"}, {"href": "http://localhost/conductors/01b66dc5-5e1c-4bba-8cda-4fa2244a0436", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=01b66dc5-5e1c-4bba-8cda-4fa2244a0436"}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_sensitive_rule_hides_data [0.079565s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': '60bd3165-5499-4f43-84c9-f1ad8b901278', '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/60bd3165-5499-4f43-84c9-f1ad8b901278
Openstack-Request-Id: req-1e440e81-1a63-449e-8a65-00d81d3c956a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "60bd3165-5499-4f43-84c9-f1ad8b901278", "created_at": "2025-06-04T21:49:33.668549+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/60bd3165-5499-4f43-84c9-f1ad8b901278", "rel": "self"}, {"href": "http://localhost/inspection/60bd3165-5499-4f43-84c9-f1ad8b901278", "rel": "bookmark"}]}
GET /v1/inspection_rules/60bd3165-5499-4f43-84c9-f1ad8b901278 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4f013018-f4da-4c7e-a982-b8be06257f6c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "60bd3165-5499-4f43-84c9-f1ad8b901278", "created_at": "2025-06-04T21:49:33.668549+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/60bd3165-5499-4f43-84c9-f1ad8b901278", "rel": "self"}, {"href": "http://localhost/inspection/60bd3165-5499-4f43-84c9-f1ad8b901278", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.204500s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name [0.148364s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/b813d491-bf02-4a88-8a93-41be1564b49b WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-42bc0c9f-8887-4709-80da-23cb0f7c7e8c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields [0.130871s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a7f3f7c4-cfa1-46a4-8ed0-113b2b05c87c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "b6f35e0a-51e9-444b-afc0-4f17dff383a6", "links": [{"href": "http://localhost/v1/conductors/b6f35e0a-51e9-444b-afc0-4f17dff383a6", "rel": "self"}, {"href": "http://localhost/conductors/b6f35e0a-51e9-444b-afc0-4f17dff383a6", "rel": "bookmark"}], "alive": true}, {"hostname": "d2b84f5e-a385-40fb-8232-4b0546b09b98", "links": [{"href": "http://localhost/v1/conductors/d2b84f5e-a385-40fb-8232-4b0546b09b98", "rel": "self"}, {"href": "http://localhost/conductors/d2b84f5e-a385-40fb-8232-4b0546b09b98", "rel": "bookmark"}], "alive": true}, {"hostname": "8528732b-4113-48a7-8f24-4fc3a0cdd41f", "links": [{"href": "http://localhost/v1/conductors/8528732b-4113-48a7-8f24-4fc3a0cdd41f", "rel": "self"}, {"href": "http://localhost/conductors/8528732b-4113-48a7-8f24-4fc3a0cdd41f", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=8528732b-4113-48a7-8f24-4fc3a0cdd41f"}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_list_hides_sensitive_data [0.148710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': '60ba8991-cbd9-4451-83a0-1e769193ae46', '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/60ba8991-cbd9-4451-83a0-1e769193ae46
Openstack-Request-Id: req-2b9dbb6e-c284-422e-8b5c-4ec5fa5857d8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "60ba8991-cbd9-4451-83a0-1e769193ae46", "created_at": "2025-06-04T21:49:33.781950+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/60ba8991-cbd9-4451-83a0-1e769193ae46", "rel": "self"}, {"href": "http://localhost/inspection/60ba8991-cbd9-4451-83a0-1e769193ae46", "rel": "bookmark"}]}
POST /v1/inspection_rules WITH {'uuid': '6431ff60-2f20-4076-b10f-ee08f4b26bee', '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/6431ff60-2f20-4076-b10f-ee08f4b26bee
Openstack-Request-Id: req-0fa823a1-4b04-4c70-8b1c-59d65482dc44
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6431ff60-2f20-4076-b10f-ee08f4b26bee", "created_at": "2025-06-04T21:49:33.808493+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/6431ff60-2f20-4076-b10f-ee08f4b26bee", "rel": "self"}, {"href": "http://localhost/inspection/6431ff60-2f20-4076-b10f-ee08f4b26bee", "rel": "bookmark"}]}
GET /v1/inspection_rules?detail=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7df21b97-6de0-4538-81f7-3be12de554e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"inspection_rules": [{"uuid": "60ba8991-cbd9-4451-83a0-1e769193ae46", "created_at": "2025-06-04T21:49:33.781950+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/60ba8991-cbd9-4451-83a0-1e769193ae46", "rel": "self"}, {"href": "http://localhost/inspection/60ba8991-cbd9-4451-83a0-1e769193ae46", "rel": "bookmark"}]}, {"uuid": "6431ff60-2f20-4076-b10f-ee08f4b26bee", "created_at": "2025-06-04T21:49:33.808493+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/6431ff60-2f20-4076-b10f-ee08f4b26bee", "rel": "self"}, {"href": "http://localhost/inspection/6431ff60-2f20-4076-b10f-ee08f4b26bee", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.127154s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.097910s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/07a139df-71a4-456d-bf45-0405fa4823b2 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-47952cd6-fc9b-4ef7-b3f2-14b9b3bf71cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_one [0.050236s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/inspection_rules WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-baaa0c11-5497-4cb9-a745-e755a738a784
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"inspection_rules": [{"uuid": "103b84d7-52ab-40b2-865e-460ae0eff7ec", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/103b84d7-52ab-40b2-865e-460ae0eff7ec", "rel": "self"}, {"href": "http://localhost/inspection/103b84d7-52ab-40b2-865e-460ae0eff7ec", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.093225s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d28df491-5464-4ab3-98dd-74305faab1cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "e74084a2-4ea4-4d86-b0c3-9b28758a807d", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/e74084a2-4ea4-4d86-b0c3-9b28758a807d", "rel": "self"}, {"href": "http://localhost/conductors/e74084a2-4ea4-4d86-b0c3-9b28758a807d", "rel": "bookmark"}], "alive": true}, {"hostname": "4686cd8a-d3f1-481a-a37f-d1bf28fe0b65", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/4686cd8a-d3f1-481a-a37f-d1bf28fe0b65", "rel": "self"}, {"href": "http://localhost/conductors/4686cd8a-d3f1-481a-a37f-d1bf28fe0b65", "rel": "bookmark"}], "alive": true}, {"hostname": "91ec3b9d-8382-4a1b-9c6a-47dc970d2d71", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/91ec3b9d-8382-4a1b-9c6a-47dc970d2d71", "rel": "self"}, {"href": "http://localhost/conductors/91ec3b9d-8382-4a1b-9c6a-47dc970d2d71", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=91ec3b9d-8382-4a1b-9c6a-47dc970d2d71"}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_patch_invalid_api_version [0.039421s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/inspection_rules/d3feb949-2ba2-4a3e-951a-a810dfb0e499 WITH [{'op': 'replace', 'path': '/description', 'value': 'New description'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow inspection rules\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id [0.093413s] ... 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-e75b2bf1-7776-4483-ba0b-84f18cf217f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty [0.062081s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2bfa8748-d0e1-400c-8dd7-aaf283e84345
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": []}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.119184s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/5996cb64-7672-49ec-b262-2c82fb08ad60 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ba581cca-8fa9-4101-8d35-429d24cc7126
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove non-existent object '1'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.101146s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3f2cb5ea-d831-42db-853e-a820fe39aaaf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}, {"hostname": "stein.rocks", "links": [{"href": "http://localhost/v1/conductors/stein.rocks", "rel": "self"}, {"href": "http://localhost/conductors/stein.rocks", "rel": "bookmark"}], "alive": true}]}
{0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_set_sensitive_field [0.186845s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': '52cbf2a3-86ca-4d23-be50-c7fdfb964349', '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/52cbf2a3-86ca-4d23-be50-c7fdfb964349
Openstack-Request-Id: req-303dd440-50ca-4a7d-9c64-b852fd76e37b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "52cbf2a3-86ca-4d23-be50-c7fdfb964349", "created_at": "2025-06-04T21:49:34.004003+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/52cbf2a3-86ca-4d23-be50-c7fdfb964349", "rel": "self"}, {"href": "http://localhost/inspection/52cbf2a3-86ca-4d23-be50-c7fdfb964349", "rel": "bookmark"}]}
PATCH /v1/inspection_rules/52cbf2a3-86ca-4d23-be50-c7fdfb964349 WITH [{'op': 'replace', 'path': '/sensitive', 'value': True}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6668253c-9117-4087-afb5-c71ee259bc77
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "52cbf2a3-86ca-4d23-be50-c7fdfb964349", "created_at": "2025-06-04T21:49:34.004003+00:00", "updated_at": "2025-06-04T21:49:34.090719+00:00", "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/52cbf2a3-86ca-4d23-be50-c7fdfb964349", "rel": "self"}, {"href": "http://localhost/inspection/52cbf2a3-86ca-4d23-be50-c7fdfb964349", "rel": "bookmark"}]}
PATCH /v1/inspection_rules/52cbf2a3-86ca-4d23-be50-c7fdfb964349 WITH [{'op': 'replace', 'path': '/sensitive', 'value': False}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0511358d-936c-465a-b740-61dfdb22de9a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'op': 'replace', 'path': '/sensitive', 'value': False}]'. Reason: Inspection rules cannot have the sensitive flag unset.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.137831s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/cb725320-605c-4dcf-812c-7250247f8568 WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b3af93b5-f5b5-4848-9825-7e9d9b154d14
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.111213s] ... 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-01862445-b0db-424b-a002-657d4a5f7bf4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.136497s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '5a955124-c35b-4a91-80b4-3b7b153acd1a'} GOT Response: 204 No Content
Openstack-Request-Id: req-aea9a08e-981c-41f6-ab94-051b0f97de84
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail [0.112573s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/4c2827fb-7a5c-460f-8466-74db614a9416 WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0d86e363-d1c0-4141-aad3-2b33657e6337
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid [0.311101s] ... 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-de6933f8-9f6f-4c0c-ae97-dd3ccd1b3417
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:34.059301+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.105711s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6cc7eb4c-d91e-4e4e-b5aa-e91da96fd22e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:49:34.272573+00:00", "updated_at": "2025-06-04T21:49:34.272247+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.125502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/node-39/vifs WITH {'id': '83a37774-ea83-4b11-a280-c3fe18dc0aaa'} GOT Response: 204 No Content
Openstack-Request-Id: req-912150f1-7881-457a-9dd9-9c9fac74c6dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.146134s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/cc290deb-1423-4323-9acf-1ec78c0e470f WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-bb1e86ad-8dab-4b04-aa71-b516f7e2d5e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_old_heartbeat [0.106737s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1188ae55-d78d-4580-9bbb-96f054c17eb3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2000-01-01T00:00:00+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": false}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid [0.086904s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/7964cf85-7d5e-45e7-8fc6-71b6ec9d4e93 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c95fcf20-0cf4-459d-b276-f8cc55c0a13e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.117679s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/node-39/vifs WITH {'id': '3edb03f7-c522-4b72-a36b-2496952f74b0'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-191ee3b5-6437-4ab2-a624-d7e514416520
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_unregistered [0.112789s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c87f090e-83c9-413d-9c62-7178349a814c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:49:34.503755+00:00", "updated_at": "2025-06-04T21:49:34.514419+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": false}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.342169s] ... 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-a58e5b49-e237-4131-b42e-a537e7fcf59d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:34.374933+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.106827s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks?fields=hostname,alive WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c734368d-6b75-4b9b-9606-4b10c35a5b9b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.121237s] ... 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-f603e7ad-20c4-4f91-9f14-b578f79d4d4d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for id: invalid%id^\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.156539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/e84d273d-36ac-43cf-9e9a-c61ff06900fb 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-98bae8af-6653-41e0-a5d0-45c8393753bc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api [0.096074s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3b591089-5922-4455-8b86-8385f4e7a049
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.120504s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'bad_id': 'f54bcaaa-892f-4387-9c1b-80e959e1d4d1'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-41d605c7-97db-4b35-a444-ac13661c2836
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vif: 'id' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.126055s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/6936224e-f402-44d8-978c-651c6135f683 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5af6d323-102e-4cad-94d7-852f0384741e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_port_and_v6 [0.112103s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/[::1]:8090 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6ca3f998-ebc4-4c19-97b8-818a7cacf646
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:49:34.837686+00:00", "updated_at": "2025-06-04T21:49:34.830256+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}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked [0.125882s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'c1e475e9-07da-484c-9997-afd9a824b1d2'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-6127f5b3-6c5b-4571-a925-7c39d19c3c8a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node  is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none [0.137335s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/2af179c4-02f2-42b4-8e53-51b3ecd8e35b WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0bdded62-df54-4ad8-814c-87c37af94b6c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root [0.310985s] ... 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-f26966c7-4c0f-48c3-9b78-077e79371d76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:34.706281+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links [0.133065s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8e5377a0-9f88-4c48-9aa5-0abf6200b964
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:49:34.944088+00:00", "updated_at": "2025-06-04T21:49:34.943820+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-cfef4c2d-86af-4aac-ba1a-c849f5fdbdbd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:49:34.944088+00:00", "updated_at": "2025-06-04T21:49:34.943820+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-cd0de36d-d34d-4624-98a6-9ef39507dac7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:49:34.944088+00:00", "updated_at": "2025-06-04T21:49:34.943820+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.132114s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/doesntexist/vifs WITH {'id': 'b2add778-c0e9-4ad8-9a3d-445f664b54af'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c40dcd8f-c4a0-489e-9f3d-f268f45985dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.129481s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/d1c4a083-5e33-494a-9d9c-4ed3089723ff WITH [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-86897f97-ad00-45be-afb9-3680dc5c8440
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'not-a-trait' is not valid under any of the given schemas. Possible root cause: 'not-a-trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent [0.158230s] ... 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-795fdd17-a00e-477e-ab29-97fca7c3ab6b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.127709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7e9ce1bd-1a28-43b0-9089-28911e677c0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:49:35.081256+00:00", "updated_at": "2025-06-04T21:49:35.080992+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-4c4fd6e9-1d23-480d-a6df-99245003526e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:49:35.081256+00:00", "updated_at": "2025-06-04T21:49:35.080992+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-02d35905-40f3-4ef9-b3a7-04611b89d6e6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:49:35.081256+00:00", "updated_at": "2025-06-04T21:49:35.080992+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_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid [0.122783s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'e441d25f-f334-45be-9c2b-f6f4946a0863', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f1a1d13e-749f-454e-8fcf-911f43aeb90c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.67
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify both port_uuid and portgroup_uuid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.133114s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/e66f6c5a-45e6-4fd1-b4d5-cdd43b2dcb31 WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-28999883-3326-4110-90bf-ee8d75ee967c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.109619s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bcd07479-cdcf-4ec7-8c93-869835bbc66b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "why care", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/why care", "rel": "self"}, {"href": "http://localhost/conductors/why care", "rel": "bookmark"}], "alive": true}, {"hostname": "why not", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/why not", "rel": "self"}, {"href": "http://localhost/conductors/why not", "rel": "bookmark"}], "alive": true}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning [0.175228s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ee1e1645-014e-4fe9-8d86-482b926e6acb WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-597dd0e1-0ab8-41d4-9660-5ce1d62d92be
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ee1e1645-014e-4fe9-8d86-482b926e6acb can not be updated while a state transition is in progress.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old [0.128142s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '93092048-54be-42ae-8fd4-df80a315af08', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 204 No Content
Openstack-Request-Id: req-c56da55e-0d89-446b-b373-bb76cac734ae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_detail [0.100623s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?detail=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bb74ecf4-a10a-41a4-8dc3-e88ac45af9f8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"created_at": "2025-06-04T21:49:35.326212+00:00", "updated_at": "2025-06-04T21:49:35.325943+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-06-04T21:49:35.332354+00:00", "updated_at": "2025-06-04T21:49:35.331985+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}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.164207s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/a6400c92-4668-4c58-b74f-4f8505df561c 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-d8c427ff-20a6-430e-a9d0-97c60b0d4955
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach [0.107536s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/4645b50f-eb46-4e2b-b055-0932ea2e36e4 GOT Response: 204 No Content
Openstack-Request-Id: req-fde822a1-b38d-4c7d-a355-f99e35f730b1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.088572s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6be75eb3-8e69-439f-9073-03ddb96a107e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.108849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/vifs/4e45dfb6-a3f2-4c93-9935-15425899d434 GOT Response: 204 No Content
Openstack-Request-Id: req-ec8b8429-16f0-4c1f-b359-0e503aa4411b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [0.182811s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/d9f375d9-aa5f-42dc-acc5-90a3399ad440 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-89a27caf-a2d8-4cf5-a62d-56edd06d1d1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d9f375d9-aa5f-42dc-acc5-90a3399ad440", "created_at": "2025-06-04T21:49:35.467992+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d9f375d9-aa5f-42dc-acc5-90a3399ad440", "rel": "self"}, {"href": "http://localhost/deploy_templates/d9f375d9-aa5f-42dc-acc5-90a3399ad440", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 11}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.294582s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/bfb43a8a-b1dd-4207-a6e2-8d158e52212b WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9ee7821f-bdf6-4f15-9861-fb398a3c9a19
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "bfb43a8a-b1dd-4207-a6e2-8d158e52212b", "created_at": "2025-06-04T21:49:35.421289+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/bfb43a8a-b1dd-4207-a6e2-8d158e52212b", "rel": "self"}, {"href": "http://localhost/nodes/bfb43a8a-b1dd-4207-a6e2-8d158e52212b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bfb43a8a-b1dd-4207-a6e2-8d158e52212b/ports", "rel": "self"}, {"href": "http://localhost/nodes/bfb43a8a-b1dd-4207-a6e2-8d158e52212b/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.143265s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?sort_key=hostname WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb4ebb82-c04d-42fc-a0a4-649170d8ce99
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "3d6505ad-0f7c-4cf1-8ebd-bf138753752e", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/3d6505ad-0f7c-4cf1-8ebd-bf138753752e", "rel": "self"}, {"href": "http://localhost/conductors/3d6505ad-0f7c-4cf1-8ebd-bf138753752e", "rel": "bookmark"}], "alive": true}, {"hostname": "b6f9abd3-7714-4045-b2bb-7b35e0368c1b", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/b6f9abd3-7714-4045-b2bb-7b35e0368c1b", "rel": "self"}, {"href": "http://localhost/conductors/b6f9abd3-7714-4045-b2bb-7b35e0368c1b", "rel": "bookmark"}], "alive": true}, {"hostname": "e08fad86-e682-4638-b611-af90c352f6aa", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/e08fad86-e682-4638-b611-af90c352f6aa", "rel": "self"}, {"href": "http://localhost/conductors/e08fad86-e682-4638-b611-af90c352f6aa", "rel": "bookmark"}], "alive": true}, {"hostname": "e1110b2a-6e46-48fa-9c26-6784f4f49c39", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/e1110b2a-6e46-48fa-9c26-6784f4f49c39", "rel": "self"}, {"href": "http://localhost/conductors/e1110b2a-6e46-48fa-9c26-6784f4f49c39", "rel": "bookmark"}], "alive": true}, {"hostname": "ff1648e1-c7f6-4fb8-8675-473d2a169faf", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/ff1648e1-c7f6-4fb8-8675-473d2a169faf", "rel": "self"}, {"href": "http://localhost/conductors/ff1648e1-c7f6-4fb8-8675-473d2a169faf", "rel": "bookmark"}], "alive": true}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked [0.099490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/7cb063b3-45f9-4248-98e9-dafb3d973662 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-53001948-a9b8-4acb-bcd6-d67c22055486
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node  is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.090025s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors?sort_key=alive WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-433d9cae-2670-4990-b4cb-ca9bc13c5b76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value alive is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/conductors?sort_key=drivers WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-dee99122-495a-451e-ab87-a7e42d897954
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist [0.167275s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/1f70812c-1ba3-49ab-a077-bbf5520632f0 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-62b5d7cb-1a68-4898-bb00-05e601ee592a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID 1f70812c-1ba3-49ab-a077-bbf5520632f0 already exists.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.127837s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/doesntexist/vifs/ff13bcc2-b618-41ab-a8e6-0a877ee30d91 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-14219b17-54b9-4c84-a784-8a04a987071f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.097272s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/0cc56a53-b61c-4b95-9421-5323c54b1c30 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-e8038ed3-68ec-4fa8-8084-45239fffd188
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: list assignment index out of range\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name [0.144582s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 204 No Content
Openstack-Request-Id: req-1e6285f5-897d-4d6a-8fd5-01c4e34ed780
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list [0.118047s] ... 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-d9f1ea50-c98b-4268-a7f1-c61e3e6e1a90
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"vifs": []}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface [0.099495s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/25fabf77-3ade-4ed6-83b1-8a74ddaa1b0b WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3336096e-4bae-4385-9be6-0af35fdbb2cc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.098898s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-888e6c40-e5f1-4bf0-85e1-b9571bb205fb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.112011s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.145756s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/79b2bfa7-ea79-42da-9c67-aab29735eda6 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce5b1865-bde2-45a0-8cd7-62fbfcee6d99
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "79b2bfa7-ea79-42da-9c67-aab29735eda6", "created_at": "2025-06-04T21:49:36.002903+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/79b2bfa7-ea79-42da-9c67-aab29735eda6", "rel": "self"}, {"href": "http://localhost/deploy_templates/79b2bfa7-ea79-42da-9c67-aab29735eda6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.131227s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 204 No Content
Openstack-Request-Id: req-6d76dbb8-93ec-43e5-8c2c-be370dff01f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.083720s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/7d5dcc49-95d3-4d70-8de9-7bfcad0eab95 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated [0.168651s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-f0ccf184-6a42-40f4-9960-702c78c9693a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is associated with instance aaaaaaaa-1111-bbbb-2222-cccccccccccc.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json_not_found [0.134820s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-20a08a9f-2bbb-49ed-8dec-16e6888d3e95
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name [0.119463s] ... 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-adbf614b-e7f7-4b0e-98f8-d5e88ad86067
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9f58dfcc-c047-451f-a994-6c099cc32c0f", "created_at": "2025-06-04T21:49:36.224966+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9f58dfcc-c047-451f-a994-6c099cc32c0f", "rel": "self"}, {"href": "http://localhost/deploy_templates/9f58dfcc-c047-451f-a994-6c099cc32c0f", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version [0.067178s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/CUSTOM_DT1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.117172s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/bad1b1e6-4748-495d-81a2-05eb882a7971 GOT Response: 204 No Content
Openstack-Request-Id: req-94b19309-f160-40a1-ab20-0cbf11e97cf0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.136732s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 204 No Content
Openstack-Request-Id: req-85736a7c-c3c2-414d-a097-e23bbd1fa9f2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.124061s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/a21c4598-5e12-41c2-b247-18b8b684bad1.json GOT Response: 204 No Content
Openstack-Request-Id: req-3c372528-3f9b-41a2-878c-33a6743a2a94
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.913824s] ... 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-d2e69f35-3c1a-4b9a-a6d3-ad03bd3ced0a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.136306s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo.1 GOT Response: 204 No Content
Openstack-Request-Id: req-e40d5989-9b40-45fd-bdca-394fc58fbabe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json [0.163948s] ... 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-e0f24179-0554-49b1-8444-71a7cb6f2d11
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f812116b-79e3-481e-af39-28ba0353ba8e", "created_at": "2025-06-04T21:49:36.416371+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f812116b-79e3-481e-af39-28ba0353ba8e", "rel": "self"}, {"href": "http://localhost/deploy_templates/f812116b-79e3-481e-af39-28ba0353ba8e", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json_not_found [0.119410s] ... 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-9a91bbd1-a82f-4254-ba67-29476c9d06a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json_not_found [0.174224s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/15a3a18c-c9d7-4671-af62-facdaee9d307.json GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4bda51e6-d28e-425d-a084-b4a6f30f72ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 15a3a18c-c9d7-4671-af62-facdaee9d307.json could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.154438s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fe081a79-b4bf-4e04-aaf6-91080e755aed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.231248s] ... 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-2d8adda4-5eed-4940-9d5a-882e5fe42f8b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name [0.139688s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/3271df69-8b9f-42bf-b59c-c664a1a08e62 WITH [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-53d90ecd-207f-409a-b86c-26e463bbf07d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'aa:bb_cc' is not valid under any of the given schemas. Possible root cause: 'aa:bb_cc' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.127756s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/7a029569-6310-47da-a6c1-c4495d5828f6 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_node_by_name_with_json [0.147033s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo.json GOT Response: 204 No Content
Openstack-Request-Id: req-e0f7ed79-21bc-4f1f-aed2-e758ba4d6bab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait [0.122592s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/6d4ce41e-c981-4c26-b061-750fc0373442 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2aa879c2-720d-4222-8a08-c78118df9235
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6d4ce41e-c981-4c26-b061-750fc0373442", "created_at": "2025-06-04T21:49:36.845565+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6d4ce41e-c981-4c26-b061-750fc0373442", "rel": "self"}, {"href": "http://localhost/deploy_templates/6d4ce41e-c981-4c26-b061-750fc0373442", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_old_api_version [0.131188s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.219614s] ... 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-c1556e18-324c-4a46-9c79-c5bc5a4db01b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.143999s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 202 Accepted
Openstack-Request-Id: req-2c063ec9-8cd8-41e6-ae5a-13c77ae7ae19
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait [0.106152s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/5f4ec1d7-a85c-442d-bde0-a6107e6893a5 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e2feb09-893a-44c3-91a5-91e24bdc8415
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "5f4ec1d7-a85c-442d-bde0-a6107e6893a5", "created_at": "2025-06-04T21:49:36.957546+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5f4ec1d7-a85c-442d-bde0-a6107e6893a5", "rel": "self"}, {"href": "http://localhost/deploy_templates/5f4ec1d7-a85c-442d-bde0-a6107e6893a5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.163729s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d60e27bc-a84d-4dfc-a494-0e0a9089c494
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.8
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.148688s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo/maintenance GOT Response: 202 Accepted
Openstack-Request-Id: req-783e5539-520a-4c29-8e6b-56904c384a0b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.115282s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/bafb3299-c5e9-47a5-ab9d-ff058aa0ea10 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9a21ce7a-27de-44e8-a6f8-1d2555785188
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template bafb3299-c5e9-47a5-ab9d-ff058aa0ea10 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.150610s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6bba4158-4167-4475-8364-d38ab59a0e59
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"name": "fake-hardware-type", "hosts": ["fake-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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.110476s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ab413274-dc51-4633-9703-da0b1591defa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create [0.130198s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '8c2d783e-0a6d-44b9-b384-236b59e721c7', '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/8c2d783e-0a6d-44b9-b384-236b59e721c7
Openstack-Request-Id: req-f4fdfb8b-91c0-4423-be0c-2fb2f618d56a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "8c2d783e-0a6d-44b9-b384-236b59e721c7", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8c2d783e-0a6d-44b9-b384-236b59e721c7", "rel": "self"}, {"href": "http://localhost/deploy_templates/8c2d783e-0a6d-44b9-b384-236b59e721c7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/8c2d783e-0a6d-44b9-b384-236b59e721c7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3032d9b5-52e7-450f-8b98-71f1c6daa5f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "8c2d783e-0a6d-44b9-b384-236b59e721c7", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8c2d783e-0a6d-44b9-b384-236b59e721c7", "rel": "self"}, {"href": "http://localhost/deploy_templates/8c2d783e-0a6d-44b9-b384-236b59e721c7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.357808s] ... 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-657445b6-dc6c-40cd-9d33-23eaea616bea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "deadbeef-0000-1111-2222-333333333333", "created_at": "2025-06-04T21:49:37.060998+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.114488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-36cd1969-4de2-4790-b8bc-9e36b56b2be7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_complex_step_args [0.108274s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b2a15b3b-d7cf-467a-8d5b-8435e3e86f5b', '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/b2a15b3b-d7cf-467a-8d5b-8435e3e86f5b
Openstack-Request-Id: req-60898cf3-90d8-4770-9696-93c79ba2b3f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b2a15b3b-d7cf-467a-8d5b-8435e3e86f5b", "created_at": "2025-06-04T21:49:37.357578+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b2a15b3b-d7cf-467a-8d5b-8435e3e86f5b", "rel": "self"}, {"href": "http://localhost/deploy_templates/b2a15b3b-d7cf-467a-8d5b-8435e3e86f5b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async [0.148090s] ... 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-7e3c06a4-e787-4e14-a688-588fb42db2fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.102812s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/foo GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-bc28b82d-9304-40fa-a754-09fbebe714f2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.111480s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a625d3ac-8a0a-4808-8fe6-69c26193cc04', '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/a625d3ac-8a0a-4808-8fe6-69c26193cc04
Openstack-Request-Id: req-de036437-8de9-42c0-8ced-16f795dad2a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a625d3ac-8a0a-4808-8fe6-69c26193cc04", "created_at": "2025-06-04T21:49:37.465385+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a625d3ac-8a0a-4808-8fe6-69c26193cc04", "rel": "self"}, {"href": "http://localhost/deploy_templates/a625d3ac-8a0a-4808-8fe6-69c26193cc04", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/a625d3ac-8a0a-4808-8fe6-69c26193cc04 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e007ad16-9392-4fad-8c11-a4f739d37368
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a625d3ac-8a0a-4808-8fe6-69c26193cc04", "created_at": "2025-06-04T21:49:37.465385+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a625d3ac-8a0a-4808-8fe6-69c26193cc04", "rel": "self"}, {"href": "http://localhost/deploy_templates/a625d3ac-8a0a-4808-8fe6-69c26193cc04", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.126534s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT Response: 202 Accepted
Openstack-Request-Id: req-6c6b26a2-ac6a-4edd-a19f-174c5623a1a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.099964s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '6e7709e1-f81d-400a-b73e-70d02fec73f4', '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-333162f0-7ad2-40b3-981f-3accb4385554
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.112798s] ... 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-ad9362c1-97d3-427a-8b64-805b5a626662
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource [0.169240s] ... 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-4c3f4f3c-7415-4fbb-a887-4b5b41957649
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved [0.360910s] ... 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-fa2a207c-75dc-47de-bedc-e560deeab0bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'management'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-18784690-2ab8-45f1-b712-274b739fed1a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'states'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0f0fdc55-01f5-4970-9a3b-0c0cfbb4cedf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'vendor_passthru'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d31210b9-ce26-4d58-ae9a-efda6edd107d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'detail'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5364589e-414f-4d29-9fae-b33eb4e72de9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'validate'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-85bef88f-efbe-48b2-a28e-a979db880ab5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid [0.118894s] ... 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/7996fd2d-2a88-4123-aa77-0b32f2fbf820
Openstack-Request-Id: req-790a3e43-3845-4181-84d1-591cabdedf88
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "7996fd2d-2a88-4123-aa77-0b32f2fbf820", "created_at": "2025-06-04T21:49:37.683789+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7996fd2d-2a88-4123-aa77-0b32f2fbf820", "rel": "self"}, {"href": "http://localhost/deploy_templates/7996fd2d-2a88-4123-aa77-0b32f2fbf820", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
GET /v1/deploy_templates/7996fd2d-2a88-4123-aa77-0b32f2fbf820 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-513c7db4-f5da-45fd-8183-1deb08a6e11c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "7996fd2d-2a88-4123-aa77-0b32f2fbf820", "created_at": "2025-06-04T21:49:37.683789+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7996fd2d-2a88-4123-aa77-0b32f2fbf820", "rel": "self"}, {"href": "http://localhost/deploy_templates/7996fd2d-2a88-4123-aa77-0b32f2fbf820", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.093206s] ... 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-200acd76-30b5-42e2-93bf-3292d2981a38
X-Openstack-Ironic-Api-Maximum-Version: 1.99
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)
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.072860s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '948f8f57-436e-42d2-a13c-70c100640193', '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_ports_subresource [0.126650s] ... 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-6275e216-a952-4746-b75b-afcacc0f2cb5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.068421s] ... 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-62f0417e-03b1-415e-9207-fc1a60892321
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.121579s] ... 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-c5d15da4-3db1-4d5f-8bb3-cae97a4a94c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.090959s] ... 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-4cf61d5f-6f5f-43f9-b8ef-f43b58dc3224
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"foo": "bar"}
GET /v1/drivers/fake-hardware-type/vendor_passthru/methods WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dac9460f-32e9-4e28-82db-c591b6535de6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"foo": "bar"}
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_node.TestPatch.test_patch_allocation_forbidden [0.155115s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/47421587-4055-4260-806c-94260d2b12cf WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'ec9cbe75-dc96-4c7a-8f40-9fb1dcd1e55c'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-df6be4dc-2aba-4c65-bb8f-20b08226aa81
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /allocation_uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.106330s] ... 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-aee94714-9478-454a-bc51-db7937a0bd41
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.084319s] ... 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-e55c84f9-98e5-4695-8ea3-306735521538
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"return_key": "return_value"}
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_node.TestPatch.test_patch_allocation_uuid_forbidden [0.224366s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/084ffb93-d060-42d0-b4cb-3920697eba61 WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'c35ee9af-a4d1-426d-8585-61efb27e91f5'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5eeccefc-b285-4485-93b0-125b04ed2751
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /allocation_uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.447467s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'fd7fde82-9476-42d2-94a3-8c1683169655', 'steps': [], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-41875a6f-7237-49dc-9c8e-4cb2861d3aa9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is too short\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra [0.066932s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'aa6ab6f4-bce9-45b6-8828-2cfbb34e93e4', '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-9d4608d3-8b9c-4202-b749-f1d1c95e3c4e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'object', 'null'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.256709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-86c89e85-f9b0-41a2-816b-1aafc699cc04
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-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-d2e9dd01-1911-4583-8d58-e934724715ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-41678283-9551-47ac-9617-77c0c4ae7123
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-70a5644e-46a1-4991-8095-c227cfd7ed4e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-78f3942c-8536-4ec5-a6b6-4188eb9a8926
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.184037s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/3f22237d-0ff2-4be6-bb4d-6101e812dc9d WITH [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5cee93bc-ee60-4d35-ad3e-766e3903b973
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /conductor. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.097331s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '6341427e-f2e5-4a3b-9f25-2c48b44a926f', '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-3aca916a-63ab-4625-ad21-fb127ad966b6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields [0.090569s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4b7cc999-7340-4afc-b041-1981a3c0af49
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden [0.085307s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/4f31becf-67cf-44e8-9994-0a5c1cd873e5 WITH [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-bdef6471-7651-48c0-a57d-f134507b85b2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.44
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /deploy_step. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.069153s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 42, 'uuid': '7bac1958-3881-453f-8ae5-d8c270bf9c28', '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-bcb7f8c5-1e72-440f-92cf-d5a66c415c60
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.044932s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': None, 'uuid': 'c916253b-c118-4edb-a419-ddb627f3e7d5', '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-8e4cb057-6a31-496b-ba46-d94c97b7bb7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: None is not of type 'string'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false [0.093708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,hosts&detail=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b2ad9555-b807-4092-b4f9-9631fe7b1b91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-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"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps [0.046984s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '4780f3a5-f260-40f4-ba14-1ab8eebf2ca9', 'steps': {}, 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c01a6258-8fa1-4908-9638-3961a78bfefd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: {} is not of type 'array'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.110503s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/67ceb6d3-e6ce-4a9f-8fe0-fcf801a02a2b WITH [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-ba78bda8-d931-4957-9f8f-cad3a2f94462
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true [0.069516s] ... 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-f23e32e1-244c-4d72-bc56-e933aa9e67fd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.051800s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9375dfee-69f7-4c36-b86e-dbf9bdc39a0e', '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-7ca0ecdf-1651-411d-9eb7-97075c229115
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.052502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/a5ba94a9-cd6a-4ae3-842e-061a818066ee WITH [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-8d2e7856-0345-4743-bee0-850172bf7cfd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /fault. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields [0.093023s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,invalid WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-e73af39a-12bb-4d24-a0f6-df59abe9a2b6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.076037s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b6fb9f6d-ad3c-47d4-b49c-eb8d2995c2a3', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-86002d1e-5e48-4aa1-8c1c-ceaf0740fa99
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is not of type 'object'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id [0.942545s] ... 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-fc00bd03-84d3-4f8a-a390-b54680c0b26f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_uuid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.124479s] ... 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-2ebc422b-aa8d-4dcf-a386-b1f0dab2b4d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:38.648206+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.048458s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '253fa11e-a111-4b93-86fc-d3c8f86db57e', '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-54a50798-01db-4e67-a024-b90fd6acfcb2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.061549s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=True WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-fc6b66eb-600f-4a16-a1fc-21207abf955e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.054404s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9a44480b-f960-454e-81ad-4ce8b3155d80', '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-e3fd9087-b100-489e-bb8d-ab1dc3ff014d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.077079s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=False WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-3a1b170b-fa8d-41a1-a03f-24f2464ffe43
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok [0.131507s] ... 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-cc48a691-0ac6-4ff0-a72a-dff689192eed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:38.780299+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.062895s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '0b1b120a-1c4c-4882-88cc-c64baae12b2a', '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-ed97e8db-8973-4f90-9b30-c3b272a22bd1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.062349s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/nope WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-eaee61c5-149a-45f3-bdf6-912c2df57b12
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.051632s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '566f0cb8-8b80-4a29-9d92-bdf320c14653', '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-1b6f8ecd-bb07-4063-86d4-8bfab91dd43e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: -1 is less than the minimum of 0\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.213907s] ... 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-3ae17357-1604-4c99-bb33-007ed13d250d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.094322s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '3f5dd1b7-b7cd-4962-8321-ab9ee5ab2da6', '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-cb38013b-e003-41eb-af3f-f8a61a4a1061
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.096337s] ... 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-8e7031da-2910-4a8f-ac69-b3d74e01a8e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update [0.221586s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/17169b85-4503-40e2-a866-799501b58fa4 WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ea09a190-a02b-42b1-8c3b-21966b1695b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "17169b85-4503-40e2-a866-799501b58fa4", "created_at": "2025-06-04T21:49:38.940175+00:00", "updated_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/17169b85-4503-40e2-a866-799501b58fa4", "rel": "self"}, {"href": "http://localhost/nodes/17169b85-4503-40e2-a866-799501b58fa4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/17169b85-4503-40e2-a866-799501b58fa4/ports", "rel": "self"}, {"href": "http://localhost/nodes/17169b85-4503-40e2-a866-799501b58fa4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/17169b85-4503-40e2-a866-799501b58fa4/states", "rel": "self"}, {"href": "http://localhost/nodes/17169b85-4503-40e2-a866-799501b58fa4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/17169b85-4503-40e2-a866-799501b58fa4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/17169b85-4503-40e2-a866-799501b58fa4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/17169b85-4503-40e2-a866-799501b58fa4/volume", "rel": "self"}, {"href": "http://localhost/nodes/17169b85-4503-40e2-a866-799501b58fa4/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.116056s] ... 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-e4b1839a-a727-40e9-93eb-9a5644f3fd80
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step [0.190690s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b70848da-a314-486a-9ea5-7b0236d2d3cf', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f1fa9bad-3273-437f-9a35-de2c574977b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra [0.276966s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a66cdc30-d642-4635-b502-6e96398f1cf0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf", "created_at": "2025-06-04T21:49:39.236390+00:00", "updated_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/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf", "rel": "self"}, {"href": "http://localhost/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf/ports", "rel": "self"}, {"href": "http://localhost/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf/states", "rel": "self"}, {"href": "http://localhost/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf/volume", "rel": "self"}, {"href": "http://localhost/nodes/9cf3c56b-bdbe-424f-87c9-0ac18bb86bdf/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent [0.252989s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/d383de93-3604-41df-a3e6-ee2bf5f64ef7 WITH [{'path': '/parent_node', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-30097fc9-7134-42d9-94ab-4b1170c7a68c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:39.241155+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_deploy_template.TestPost.test_create_long_name [0.226573s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'a066853e-5450-4d03-9f22-21626d2e15c9', '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/a066853e-5450-4d03-9f22-21626d2e15c9
Openstack-Request-Id: req-684bdcb8-9d1a-4f96-bba0-a494fb29fe8e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a066853e-5450-4d03-9f22-21626d2e15c9", "created_at": "2025-06-04T21:49:39.421530+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a066853e-5450-4d03-9f22-21626d2e15c9", "rel": "self"}, {"href": "http://localhost/deploy_templates/a066853e-5450-4d03-9f22-21626d2e15c9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.132207s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'not-a-trait', 'uuid': '8537e8db-8a72-49e2-9ad2-d5936551e62a', '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-a0bc0b66-be36-445f-b6e4-deecaf3f1d00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not-a-trait' is not valid under any of the given schemas. Possible root cause: 'not-a-trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_fail_wrong_version [0.180816s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f6ceb02f-e03e-4dbe-8b7d-1760ae9b8c35 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-4dd0a40d-59b8-4c1a-9a6f-76b33b4626c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.103901s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '45d06a08-f6cd-40ac-9900-3799ce8b759a', '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-8c09680c-4efc-44ef-b317-02612821e2b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.846106s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5cbe29f9-ff5e-483f-a669-76e50a045240
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"name": "fake-hardware-type", "hosts": ["fake-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_power_interface": null, "enabled_power_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_console_interface": null, "enabled_console_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": []}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-48da6480-4cd9-412f-b288-23ba51cd5a98
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-f91e71ea-677e-42e4-9ccd-04a78d97a8e6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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)
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info [0.406572s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2 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-65a6c65b-cc15-45d5-8069-fa0e19de9989
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "0e942326-20c8-4b92-9afc-5292d63c3db2", "created_at": "2025-06-04T21:49:39.563704+00:00", "updated_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/0e942326-20c8-4b92-9afc-5292d63c3db2", "rel": "self"}, {"href": "http://localhost/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2/ports", "rel": "self"}, {"href": "http://localhost/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2/states", "rel": "self"}, {"href": "http://localhost/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2/volume", "rel": "self"}, {"href": "http://localhost/nodes/0e942326-20c8-4b92-9afc-5292d63c3db2/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name [0.101160s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'uuid': '9d5a4c5b-3b27-47e5-94dc-b54cafcd950e', '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-02529c73-1232-4d14-bda9-b3a494ac9629
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'name' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.098497s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d1356708-fb6f-4388-a8b6-f5d88bb40ff5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"name": "fake-hardware-type", "hosts": ["fake-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_power_interface": null, "enabled_power_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_console_interface": null, "enabled_console_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": []}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8d1cdc1c-1e8e-457f-b783-4222fef2b6e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-2e21f43e-7d1c-4588-8212-31157769690e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.084090s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '0c614a55-d094-4335-a9a0-37a288236ddc', 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-71fed4e8-25f8-4ac6-8693-4e4a563427cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'steps' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor [0.067658s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb9da567-c056-471c-9cc5-c70c0e871f15
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"drivers": []}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.036646s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=working WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-864b6aad-fe15-4ecf-975c-b3fc8eaf68eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.093991s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '272d22bc-4080-49c5-a863-b30ca7041505', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4938213a-7c52-4437-8850-41624a940202
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'args' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.039712s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=classic WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f2684684-82fc-4dd3-8227-799c47b81025
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_not_uuid [0.395248s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/c95abf61-2ed4-44f3-8f19-83ec5d0cfb69 WITH [{'path': '/parent_node', 'value': 'djarin', 'op': 'add'}] GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-b841bbe6-46ad-4533-b1bb-654c82ae6cec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"(sqlite3.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: (<MagicMock name='update_node().allocation_id' id='140480148300176'>,)]\\n(Background on this error at: https://sqlalche.me/e/20/rvf5)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic [0.092295s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=classic WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a509f26b-5050-4f58-96e3-c9786b6866ee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": []}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.101039s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '3366114b-dd68-4ca3-ae98-b1259b2c7e9a', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-cca47ded-05f6-4a2e-ba3a-5cbf0fe5ecd3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'interface' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra [0.322838s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59 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-5bea3a29-56f1-40cf-9981-0b14f025139b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "7a37ef36-b9c1-4361-8fdc-336059c2be59", "created_at": "2025-06-04T21:49:39.946071+00:00", "updated_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/7a37ef36-b9c1-4361-8fdc-336059c2be59", "rel": "self"}, {"href": "http://localhost/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59/ports", "rel": "self"}, {"href": "http://localhost/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59/states", "rel": "self"}, {"href": "http://localhost/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59/volume", "rel": "self"}, {"href": "http://localhost/nodes/7a37ef36-b9c1-4361-8fdc-336059c2be59/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.062490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?type=dynamic WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c9f14f66-7495-48ad-9a55-6b20bc2cd415
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type/properties", "rel": "bookmark"}], "type": "dynamic"}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.092886s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '6e4981b2-30f9-4d16-8260-ad726ca0219b', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-56a7ec3e-5ac5-4d86-b972-5c5e1ab93b37
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'priority' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.074746s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9175c7fd-8f79-4019-a9b1-d015c5dcda3d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-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-ab4f256d-044e-4c25-bc27-b6af7cd2cfde
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-1649179b-e9b9-4db7-b4ff-f7a8c388faea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-cb810e1c-87d3-4755-8951-48d699b04bb4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5bd5efa6-ba27-4216-a3ea-4390443e436e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.097798s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'ccab68e4-6c99-42c8-b903-49b56582d1c1', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1c5e3137-a87a-41db-a267-0c5c7adb1c89
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'step' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_remove_parent [0.278325s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/fbf0d977-d4be-45da-b92c-749c53fabb80 WITH [{'path': '/parent_node', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3a5b31e9-e8a2-42ca-bcaa-3f8c55268807
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:40.101851+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "djarin", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.095070s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c815609e-a7c4-45ce-a515-76879e1587fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-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_power_interface": null, "enabled_power_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_console_interface": null, "enabled_console_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": []}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic", "default_power_interface": null, "enabled_power_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": []}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9d1afd4c-00b3-44ec-9f28-32877a27f2ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-a1ef0bd1-992e-4c19-b362-4b8f1107fe99
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-d5c1f28e-c58c-4c59-a08a-ef9ddef53e16
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-02d656fd-354c-46cf-8870-c25557f44f
    ee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.054316s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fe42ddc3-16f9-4c49-b446-cb3bd65458e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-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_power_interface": null, "enabled_power_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_console_interface": null, "enabled_console_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": []}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}], "properties": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2/properties", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2/properties", "rel": "bookmark"}], "type": "dynamic", "default_power_interface": null, "enabled_power_interfaces": [], "default_management_interface": null, "enabled_management_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": []}]}
GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b784834e-d9b0-4796-8eb8-93f83b1f107e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-45fa5146-6608-4ce5-a2a1-3b13ce6e2ba8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-
    d99318a1-f2d6-4117-b910-6038635c79de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2de6eeb8-d21a-4835-b804-30589a1d0527
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.097406s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '9067bfde-2b5a-4a1a-892c-c947d293ecb1', '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/9067bfde-2b5a-4a1a-892c-c947d293ecb1
Openstack-Request-Id: req-f908b0f8-3a3f-49c9-8451-924589c597d8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9067bfde-2b5a-4a1a-892c-c947d293ecb1", "created_at": "2025-06-04T21:49:40.372259+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9067bfde-2b5a-4a1a-892c-c947d293ecb1", "rel": "self"}, {"href": "http://localhost/deploy_templates/9067bfde-2b5a-4a1a-892c-c947d293ecb1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info [0.324550s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612 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-7b57507b-3561-4d94-b245-e5877d9b4ae5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "f13aa2a6-c2be-4f03-90c7-bd4e2d908612", "created_at": "2025-06-04T21:49:40.254473+00:00", "updated_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/f13aa2a6-c2be-4f03-90c7-bd4e2d908612", "rel": "self"}, {"href": "http://localhost/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612/ports", "rel": "self"}, {"href": "http://localhost/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612/states", "rel": "self"}, {"href": "http://localhost/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612/volume", "rel": "self"}, {"href": "http://localhost/nodes/f13aa2a6-c2be-4f03-90c7-bd4e2d908612/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_custom_fields_invalid_api_version [0.072391s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-542f5031-2957-4ae3-bdc9-0174fc4f9ba8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
GET /v1/drivers/fake-hardware-type?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-05afd012-2554-455e-a1d9-d597db1b7ab5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list [0.154894s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo&shard=bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-45ddb4cf-70ec-40f6-b619-eed61b784fce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "1c615318-ed50-454e-9b90-78c67f5ac465", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1c615318-ed50-454e-9b90-78c67f5ac465", "rel": "self"}, {"href": "http://localhost/nodes/1c615318-ed50-454e-9b90-78c67f5ac465", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.098966s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '65d83a8f-6aa7-456c-905a-09c15fad9d5c', '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/65d83a8f-6aa7-456c-905a-09c15fad9d5c
Openstack-Request-Id: req-e9bcc39d-4af9-4588-99a0-6fe7ebc2c937
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "65d83a8f-6aa7-456c-905a-09c15fad9d5c", "created_at": "2025-06-04T21:49:40.475257+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/65d83a8f-6aa7-456c-905a-09c15fad9d5c", "rel": "self"}, {"href": "http://localhost/deploy_templates/65d83a8f-6aa7-456c-905a-09c15fad9d5c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields [0.042570s] ... 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-37da3590-eeb2-40f6-9935-4030e39222e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields [0.051799s] ... 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-7e9267e3-2229-4625-9fc2-09c0c794149f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.77
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.109604s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'c3925914-810c-443e-a4bc-b7ce53270c0e', '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-26003146-acda-4fa5-9f91-93d87c28d71b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.055010s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-050b2e5a-405c-4cb3-9de8-9721508e7eb6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-fb06cd15-1952-470d-addd-f5733e65ac40
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-001a10c8-2f86-4e86-9653-a70e19c5be42
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_detail [0.132091s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo,bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9bafea8f-1dd2-4c19-9fb1-5d3f7d48b2b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "c319a8ac-e3d4-43db-8708-fdf84dbe8e84", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c319a8ac-e3d4-43db-8708-fdf84dbe8e84", "rel": "self"}, {"href": "http://localhost/nodes/c319a8ac-e3d4-43db-8708-fdf84dbe8e84", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.057556s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a55955a9-a8a5-4ce7-b3cb-2a76db29e84e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-d12fa096-efe3-4fe6-a123-6a0965938f00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-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-552bbe21-6141-468c-aeb8-8e43de364f04
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://foo/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://foo/drivers/fake-hardware-type", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info [0.252143s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123 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-8f58e2bf-3847-4277-b747-6ada4f28105d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "2cb8c246-0e6f-419c-9dc1-92fe0b584123", "created_at": "2025-06-04T21:49:40.565394+00:00", "updated_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/2cb8c246-0e6f-419c-9dc1-92fe0b584123", "rel": "self"}, {"href": "http://localhost/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123/ports", "rel": "self"}, {"href": "http://localhost/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123/states", "rel": "self"}, {"href": "http://localhost/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123/volume", "rel": "self"}, {"href": "http://localhost/nodes/2cb8c246-0e6f-419c-9dc1-92fe0b584123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard [0.090177s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo WITH {'fields': 'shard'} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b6d680d0-3cd3-450f-b32b-153dd06f1f96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"shard": "foo", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.056061s] ... 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-9879213e-ac7d-414a-a9c0-b0d5c354c7ff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"foo": "description of foo"}
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.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error [0.130993s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=blah WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-40f6f385-ba34-4610-8ecd-6565e15fca35
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid associated: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.054335s] ... 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-500387d7-a068-4563-a0e5-0e75188acf2f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"foo": "description of foo"}
GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-78376c62-9543-4586-b46b-ef7007f7ad33
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"foo": "description of foo"}
GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb053ac6-ca97-473f-b9ea-ea523a5d1b43
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"foo": "description of foo"}
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_node.TestNodeShardGets.test_filtering_by_shard_detail_fails_wrong_version [0.076107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-90233023-9f82-4763-82f5-b1b41ad888e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.056452s] ... 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-95ba64ae-6208-450e-bf16-59f328f066f8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"}
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_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.041123s] ... 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-5bc8c86f-aa4c-4612-aab3-ea4bb3df3b07
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_fails_wrong_version [0.083702s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?shard=foo WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-5c66ab93-7af1-4b47-ba85-e5a2787f0949
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info [0.210173s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f WITH [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-85f25e6c-3640-432f-a01d-055824f17c12
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "c33479d1-48ad-4583-a6bc-ec121b37be2f", "created_at": "2025-06-04T21:49:40.779285+00:00", "updated_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/c33479d1-48ad-4583-a6bc-ec121b37be2f", "rel": "self"}, {"href": "http://localhost/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f/ports", "rel": "self"}, {"href": "http://localhost/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f/states", "rel": "self"}, {"href": "http://localhost/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f/volume", "rel": "self"}, {"href": "http://localhost/nodes/c33479d1-48ad-4583-a6bc-ec121b37be2f/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.174498s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b1f50e23-d8ae-4f5c-9052-9e61704d2730
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "05b927f8-01c3-4c7f-ba9d-b1968f5c4ea7", "instance_uuid": "bb915415-bdbe-457c-9b9b-5f9a6c13c29b", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/05b927f8-01c3-4c7f-ba9d-b1968f5c4ea7", "rel": "self"}, {"href": "http://localhost/nodes/05b927f8-01c3-4c7f-ba9d-b1968f5c4ea7", "rel": "bookmark"}]}, {"uuid": "9b17a97f-c9a7-4c24-a64e-5a04772d8b38", "instance_uuid": "5e929bc2-d7fe-4343-b8f2-9eac2da1cb27", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9b17a97f-c9a7-4c24-a64e-5a04772d8b38", "rel": "self"}, {"href": "http://localhost/nodes/9b17a97f-c9a7-4c24-a64e-5a04772d8b38", "rel": "bookmark"}]}, {"uuid": "50b1859b-d771-49a9-bf4a-eb4683b4afa7", "instance_uuid": "f0ceaf49-05c8-4688-997b-08043ede15fd", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/50b1859b-d771-49a9-bf4a-eb4683b4afa7", "rel": "self"}, {"href": "http://localhost/nodes/50b1859b-d771-49a9-bf4a-eb4683b4afa7", "rel": "bookmark"}]}, {"uuid": "e3e95125-e12f-43e0-8bd9-4ef0d3e41334", "instance_uuid": "f25d48fd-d25a-4604-9b35-a0d9e6032b45", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e3e95125-e12f-43e0-8bd9-4ef0d3e41334", "rel": "self"}, {"href": "http://localhost/nodes/e3e95125-e12f-43e0-8bd9-4ef0d3e41334", "rel": "bookmark"}]}]}
GET /v1/nodes?associated=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d85f2a7e-71bb-485b-8d76-de39169160c2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "05b927f8-01c3-4c7f-ba9d-b1968f5c4ea7", "instance_uuid": "bb915415-bdbe-457c-9b9b-5f9a6c13c29b", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/05b927f8-01c3-4c7f-ba9d-b1968f5c4ea7", "rel": "self"}, {"href": "http://localhost/nodes/05b927f8-01c3-4c7f-ba9d-b1968f5c4ea7", "rel": "bookmark"}]}, {"uuid": "9b17a97f-c9a7-4c24-a64e-5a04772d8b38", "instance_uuid": "5e929bc2-d7fe-4343-b8f2-9eac2da1cb27", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9b17a97f-c9a7-4c24-a64e-5a04772d8b38", "rel": "self"}, {"href": "http://localhost/nodes/9b17a97f-c9a7-4c24-a64e-5a04772d8b38", "rel": "bookmark"}]}, {"uuid": "50b1859b-d771-49a9-bf4a-eb4683b4afa7", "instance_uuid": "f0ceaf49-05c8-4688-997b-08043ede15fd", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/50b1859b-d771-49a9-bf4a-eb4683b4afa7", "rel": "self"}, {"href": "http://localhost/nodes/50b1859b-d771-49a9-bf4a-eb4683b4afa7", "rel": "bookmark"}]}, {"uuid": "e3e95125-e12f-43e0-8bd9-4ef0d3e41334", "instance_uuid": "f25d48fd-d25a-4604-9b35-a0d9e6032b45", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e3e95125-e12f-43e0-8bd9-4ef0d3e41334", "rel": "self"}, {"href": "http://localhost/nodes/e3e95125-e12f-43e0-8bd9-4ef0d3e41334", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.048340s] ... 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-ba203c37-c49e-4ff6-9339-06df3752c231
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event [0.056205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-14f930bb-7d48-44e0-83f5-2a791b66f176
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.058630s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5ecd96e6-0ea2-44d2-a9b4-801b71acc0e6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.126310s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2e9e5c5c-91f2-46b9-876b-5607de865cd5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "d54b1cf5-5eb3-49af-8d93-f43bdf0b5a6c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d54b1cf5-5eb3-49af-8d93-f43bdf0b5a6c", "rel": "self"}, {"href": "http://localhost/nodes/d54b1cf5-5eb3-49af-8d93-f43bdf0b5a6c", "rel": "bookmark"}]}, {"uuid": "42a6818c-0d86-4c30-a321-1b5c66940133", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/42a6818c-0d86-4c30-a321-1b5c66940133", "rel": "self"}, {"href": "http://localhost/nodes/42a6818c-0d86-4c30-a321-1b5c66940133", "rel": "bookmark"}]}, {"uuid": "8f88dfc7-7684-4cb4-8429-f6fbe532053f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/8f88dfc7-7684-4cb4-8429-f6fbe532053f", "rel": "self"}, {"href": "http://localhost/nodes/8f88dfc7-7684-4cb4-8429-f6fbe532053f", "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=8f88dfc7-7684-4cb4-8429-f6fbe532053f"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_sharded [0.160853s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sharded=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-955b7602-dbbf-46d5-90de-c80443d24c20
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
GET /v1/nodes?sharded=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e211eb2f-64ff-4f70-afdd-f078108a5745
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "a5885544-5279-4411-b767-603f65987d38", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/a5885544-5279-4411-b767-603f65987d38", "rel": "self"}, {"href": "http://localhost/nodes/a5885544-5279-4411-b767-603f65987d38", "rel": "bookmark"}]}, {"uuid": "54480274-3a87-4819-84c8-6e1c15ac33c0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/54480274-3a87-4819-84c8-6e1c15ac33c0", "rel": "self"}, {"href": "http://localhost/nodes/54480274-3a87-4819-84c8-6e1c15ac33c0", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.041822s] ... 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-14fc9000-6d2a-4f72-9560-c5a680790989
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.042329s] ... 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-ec98a999-942d-40c5-9d79-65f7c2bdcdb0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields [0.120189s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=driver_info,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-93bb9e1e-fda3-43a0-88ae-78edc1b5749c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "60cbc5da-290c-432d-b966-8ad745eb8a0d", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/60cbc5da-290c-432d-b966-8ad745eb8a0d", "rel": "self"}, {"href": "http://localhost/nodes/60cbc5da-290c-432d-b966-8ad745eb8a0d", "rel": "bookmark"}]}, {"uuid": "f6e62be1-e6d3-48f9-a0bc-380d0208939f", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/f6e62be1-e6d3-48f9-a0bc-380d0208939f", "rel": "self"}, {"href": "http://localhost/nodes/f6e62be1-e6d3-48f9-a0bc-380d0208939f", "rel": "bookmark"}]}, {"uuid": "866db37e-9685-449b-8a66-5ec9acee4380", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/866db37e-9685-449b-8a66-5ec9acee4380", "rel": "self"}, {"href": "http://localhost/nodes/866db37e-9685-449b-8a66-5ec9acee4380", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=866db37e-9685-449b-8a66-5ec9acee4380"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events [0.050900s] ... 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-42a19fa9-2e60-4104-a76e-10682e736a3b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_single_shard_detail [0.131561s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-841085a4-d2ba-443e-8ccc-ba11137eba25
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:41.136750+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none [0.294056s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c WITH [] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4fdd45d0-bc39-40bb-ba8c-bfab9e02eac0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "3c3f355e-6acd-4cc0-8587-0cb4438c629c", "created_at": "2025-06-04T21:49:41.034201+00:00", "updated_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/3c3f355e-6acd-4cc0-8587-0cb4438c629c", "rel": "self"}, {"href": "http://localhost/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c/ports", "rel": "self"}, {"href": "http://localhost/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c/states", "rel": "self"}, {"href": "http://localhost/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c/volume", "rel": "self"}, {"href": "http://localhost/nodes/3c3f355e-6acd-4cc0-8587-0cb4438c629c/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.069939s] ... 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-53fd2bac-7aec-4771-8667-bb5a13db346f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit [0.118736s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ba3e3ebd-b2fc-430d-97b0-417d4eb38602
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "30b1db22-d343-4109-8b63-e41e68021f19", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/30b1db22-d343-4109-8b63-e41e68021f19", "rel": "self"}, {"href": "http://localhost/nodes/30b1db22-d343-4109-8b63-e41e68021f19", "rel": "bookmark"}]}, {"uuid": "a93159c3-970f-494a-bcf9-57bc572b9917", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a93159c3-970f-494a-bcf9-57bc572b9917", "rel": "self"}, {"href": "http://localhost/nodes/a93159c3-970f-494a-bcf9-57bc572b9917", "rel": "bookmark"}]}, {"uuid": "69fdf49c-fcd4-4f57-85f1-29ecf297124a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/69fdf49c-fcd4-4f57-85f1-29ecf297124a", "rel": "self"}, {"href": "http://localhost/nodes/69fdf49c-fcd4-4f57-85f1-29ecf297124a", "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=69fdf49c-fcd4-4f57-85f1-29ecf297124a"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field [0.105600s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2dbb3e68-b37e-400c-9796-6c09604c1b9e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:41.255790+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id [0.081368s] ... 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-c9e1d7f5-3a08-40a7-9cd4-1cfa2b31b340
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource [0.162947s] ... 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-56c598cd-f152-4a6b-9bfc-8883ff10654d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field_fails_wrong_version [0.112068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-58d3c826-0b50-40cb-a1d3-c3a5c736dc60
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:41.370892+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.090926s] ... 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-453cfbfd-10b2-4c33-86d4-6ec8f4bf2b4c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param [0.133487s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=976423d9-d9a7-4d3c-b5d2-81ea887c12a0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2684672c-acfc-4055-9a07-52c6dfbb806d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "bee51a31-b6ec-413b-a755-a98862003605", "instance_uuid": "976423d9-d9a7-4d3c-b5d2-81ea887c12a0", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/bee51a31-b6ec-413b-a755-a98862003605", "rel": "self"}, {"href": "http://localhost/nodes/bee51a31-b6ec-413b-a755-a98862003605", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.128135s] ... 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-c591a9ab-88ab-4c1a-87d8-5569d1ad657d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.090751s] ... 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-0271b2f5-3912-49b3-8f1f-a470b52e4194
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.145164s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8636e695-bb5a-40c7-884e-30f0aba05203
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:41.501924+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.125862s] ... 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-2ab9cb29-692e-4347-ad79-57cc3b98936b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_ident\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address [0.106583s] ... 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-bf417416-8e57-40e8-96df-dfed4fb3963b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard [0.241261s] ... 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-3d1b5eef-3552-4cfe-a267-90b1b77ad396
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:41.583393+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-0decb237-f1c7-4436-930b-758faeb04b26
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:41.583393+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "dep
    loy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single [0.120565s] ... 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-57925f80-59b6-4633-8e4a-c7a5e8146cb1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id [0.133445s] ... 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-6bd5490e-0358-44a1-837e-3e9b2b49c5ec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden [0.082685s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-37509f5d-f226-4b45-90fd-0fee246f99de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard_fail_wrong_version [0.175715s] ... 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-fa334dca-755a-42cf-8ceb-3b2cc54c41a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.115746s] ... 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-26a60321-7745-4814-9555-496291f0a578
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.273190s] ... 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-0aaac0d0-8162-4c18-8077-f20acddab260
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid [0.141765s] ... 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-affc4cc4-fb8a-463b-9d4c-18bde632eb5c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:41.874471+00:00", "updated_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"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.104250s] ... 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-120f7956-2c20-4cb6-a109-d7797e30a68c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match [0.111023s] ... 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-1c1b0f46-43c1-4fa3-b777-8f0846bf85b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:41.997359+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": "6eccd391-961c-4da5-b3c5-e2fa5cfbbd9d", "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "46c0bf8a-846d-49a5-9724-5a61a5efa6bf", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.153102s] ... 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-cfbec024-5d19-437c-900e-9c9ff3a5d44b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Windows ME'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.253230s] ... 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-a2028ab6-3da4-443e-ac15-7146a3f400e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-656d518f-5c40-42d8-98eb-61afa6cdcda9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.132755s] ... 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-fa0f722f-ebcd-49c9-bf23-9cd161a92ca5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match [0.126812s] ... 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-32660502-1444-40d1-9548-320894bdd362
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.133111s] ... 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-fc4b092b-0993-4303-a782-b1c6df69c50e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch [0.114878s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?project=54321 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7ce111a5-7de9-4c52-a4be-2f7b5ccad6ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.201737s] ... 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-192a02aa-9ef8-4732-b631-f92be55b4504
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:42.253127+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-b83dd13d-fbf5-4d07-8b48-221ed5b2213b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:42.253127+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_inspection_rule.TestPost.test_create_rule [0.164858s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': 'ee813251-258d-4258-a403-fb198a3470e5', '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/ee813251-258d-4258-a403-fb198a3470e5
Openstack-Request-Id: req-c726cf57-d2d8-441a-ac65-c0f6b88ba97b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ee813251-258d-4258-a403-fb198a3470e5", "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/ee813251-258d-4258-a403-fb198a3470e5", "rel": "self"}, {"href": "http://localhost/inspection/ee813251-258d-4258-a403-fb198a3470e5", "rel": "bookmark"}]}
GET /v1/inspection_rules/ee813251-258d-4258-a403-fb198a3470e5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-411d105a-ebfd-4244-a727-622a3aa5520a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ee813251-258d-4258-a403-fb198a3470e5", "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/ee813251-258d-4258-a403-fb198a3470e5", "rel": "self"}, {"href": "http://localhost/inspection/ee813251-258d-4258-a403-fb198a3470e5", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.146245s] ... 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-3a0eb1e3-a366-4d08-8bfd-6372cb0c5958
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_generate_uuid [0.109417s] ... 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/26056e13-c773-4a0b-9424-d3e41d324d2a
Openstack-Request-Id: req-db43eb42-08c7-43c6-8a57-18c9948175cc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "26056e13-c773-4a0b-9424-d3e41d324d2a", "created_at": "2025-06-04T21:49:42.403158+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/26056e13-c773-4a0b-9424-d3e41d324d2a", "rel": "self"}, {"href": "http://localhost/inspection/26056e13-c773-4a0b-9424-d3e41d324d2a", "rel": "bookmark"}]}
GET /v1/inspection_rules/26056e13-c773-4a0b-9424-d3e41d324d2a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f4e6017a-651a-4f77-9fd4-a26fa2f77c5c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "26056e13-c773-4a0b-9424-d3e41d324d2a", "created_at": "2025-06-04T21:49:42.403158+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/26056e13-c773-4a0b-9424-d3e41d324d2a", "rel": "self"}, {"href": "http://localhost/inspection/26056e13-c773-4a0b-9424-d3e41d324d2a", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden [0.205658s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d9cbbfc4-e673-414e-85fa-4e446f4af4f8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "6c53621e-ea77-4923-87a8-88e8874e1d14", "created_at": "2025-06-04T21:49:42.408127+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/6c53621e-ea77-4923-87a8-88e8874e1d14", "rel": "self"}, {"href": "http://localhost/nodes/6c53621e-ea77-4923-87a8-88e8874e1d14", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6c53621e-ea77-4923-87a8-88e8874e1d14/ports", "rel": "self"}, {"href": "http://localhost/nodes/6c53621e-ea77-4923-87a8-88e8874e1d14/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6c53621e-ea77-4923-87a8-88e8874e1d14/states", "rel": "self"}, {"href": "http://localhost/nodes/6c53621e-ea77-4923-87a8-88e8874e1d14/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6c53621e-ea77-4923-87a8-88e8874e1d14/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6c53621e-ea77-4923-87a8-88e8874e1d14/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6c53621e-ea77-4923-87a8-88e8874e1d14/volume", "rel": "self"}, {"href": "http://localhost/nodes/6c53621e-ea77-4923-87a8-88e8874e1d14/volume", "rel": "bookmark"}]}, {"uuid": "4dd80da9-04bd-4bc2-a9f1-9109eef07748", "created_at": "2025-06-04T21:49:42.410013+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/4dd80da9-04bd-4bc2-a9f1-9109eef07748", "rel": "self"}, {"href": "http://localhost/nodes/4dd80da9-04bd-4bc2-a9f1-9109eef07748", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4dd80da9-04bd-4bc2-a9f1-9109eef07748/ports", "rel": "self"}, {"href": "http://localhost/nodes/4dd80da9-04bd-4bc2-a9f1-9109eef07748/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4dd80da9-04bd-4bc2-a9f1-9109eef07748/states", "rel": "self"}, {"href": "http://localhost/nodes/4dd80da9-04bd-4bc2-a9f1-9109eef07748/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4dd80da9-04bd-4bc2-a9f1-9109eef07748/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4dd80da9-04bd-4bc2-a9f1-9109eef07748/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4dd80da9-04bd-4bc2-a9f1-9109eef07748/volume", "rel": "self"}, {"href": "http://localhost/nodes/4dd80da9-04bd-4bc2-a9f1-9109eef07748/volume", "rel": "bookmark"}]}, {"uuid": "2353593f-51ca-4eaf-9f25-9a56dd30b67c", "created_at": "2025-06-04T21:49:42.411768+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/2353593f-51ca-4eaf-9f25-9a56dd30b67c", "rel": "self"}, {"href": "http://localhost/nodes/2353593f-51ca-4eaf-9f25-9a56dd30b67c", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2353593f-51ca-4eaf-9f25-9a56dd30b67c/ports", "rel": "self"}, {"href": "http://localhost/nodes/2353593f-51ca-4eaf-9f25-9a56dd30b67c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2353593f-51ca-4eaf-9f25-9a56dd30b67c/states", "rel": "self"}, {"href": "http://localhost/nodes/2353593f-51ca-4eaf-9f25-9a56dd30b67c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2353593f-51ca-4eaf-9f25-9a56dd30b67c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2353593f-51ca-4eaf-9f25-9a56dd30b67c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2353593f-51ca-4eaf-9f25-9a56dd30b67c/volume", "rel": "self"}, {"href": "http://localhost/nodes/2353593f-51ca-4eaf-9f25-9a56dd30b67c/volume", "rel": "bookmark"}]}, {"uuid": "dcf849f2-d730-447b-bd76-707a0079a075", "created_at": "2025-06-04T21:49:42.425909+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/dcf849f2-d730-447b-bd76-707a0079a075", "rel": "self"}, {"href": "http://localhost/nodes/dcf849f2-d730-447b-bd76-707a0079a075", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/dcf849f2-d730-447b-bd76-707a0079a075/ports", "rel": "self"}, {"href": "http://localhost/nodes/dcf849f2-d730-447b-bd76-707a0079a075/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/dcf849f2-d730-447b-bd76-707a0079a075/states", "rel": "self"}, {"href": "http://localhost/nodes/dcf849f2-d730-447b-bd76-707a0079a075/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/dcf849f2-d730-447b-bd76-707a0079a075/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/dcf849f2-d730-447b-bd76-707a0079a075/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/dcf849f2-d730-447b-bd76-707a0079a075/volume", "rel": "self"}, {"href": "http://localhost/nodes/dcf849f2-d730-447b-bd76-707a0079a075/volume", "rel": "bookmark"}]}, {"uuid": "c375a87a-c4d7-4a55-9a17-0ec92a177ece", "created_at": "2025-06-04T21:49:42.427903+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/c375a87a-c4d7-4a55-9a17-0ec92a177ece", "rel": "self"}, {"href": "http://localhost/nodes/c375a87a-c4d7-4a55-9a17-0ec92a177ece", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c375a87a-c4d7-4a55-9a17-0ec92a177ece/ports", "rel": 
    "self"}, {"href": "http://localhost/nodes/c375a87a-c4d7-4a55-9a17-0ec92a177ece/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c375a87a-c4d7-4a55-9a17-0ec92a177ece/states", "rel": "self"}, {"href": "http://localhost/nodes/c375a87a-c4d7-4a55-9a17-0ec92a177ece/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c375a87a-c4d7-4a55-9a17-0ec92a177ece/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c375a87a-c4d7-4a55-9a17-0ec92a177ece/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c375a87a-c4d7-4a55-9a17-0ec92a177ece/volume", "rel": "self"}, {"href": "http://localhost/nodes/c375a87a-c4d7-4a55-9a17-0ec92a177ece/volume", "rel": "bookmark"}]}, {"uuid": "aa065a93-aebb-4050-b1c4-e7b39fb03d0d", "created_at": "2025-06-04T21:49:42.433513+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/aa065a93-aebb-4050-b1c4-e7b39fb03d0d", "rel": "self"}, {"href": "http://localhost/nodes/aa065a93-aebb-4050-b1c4-e7b39fb03d0d", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/aa065a93-aebb-4050-b1c4-e7b39fb03d0d/ports", "rel": "self"}, {"href": "http://localhost/nodes/aa065a93-aebb-4050-b1c4-e7b39fb03d0d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/aa065a93-aebb-4050-b1c4-e7b39fb03d0d/states", "rel": "self"}, {"href": "http://localhost/nodes/aa065a93-aebb-4050-b1c4-e7b39fb03d0d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/aa065a93-aebb-4050-b1c4-e7b39fb03d0d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/aa065a93-aebb-4050-b1c4-e7b39fb03d0d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/aa065a93-aebb-4050-b1c4-e7b39fb03d0d/volume", "rel": "self"}, {"href": "http://localhost/nodes/aa065a93-aebb-4050-b1c4-e7b39fb03d0d/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.158959s] ... 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-c06b711d-f280-4a7d-8016-82fc2ca95e39
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.212188s] ... 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-06b0abc3-8196-462a-a61e-f82c8bdb7ec1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_with_optional_args [0.088007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/inspection_rules WITH {'uuid': 'a8812ac6-8052-4764-9e42-70f6e1446bf9', '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/a8812ac6-8052-4764-9e42-70f6e1446bf9
Openstack-Request-Id: req-a3f05995-d29c-4e89-879b-69c438d2ab84
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a8812ac6-8052-4764-9e42-70f6e1446bf9", "created_at": "2025-06-04T21:49:42.510528+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/a8812ac6-8052-4764-9e42-70f6e1446bf9", "rel": "self"}, {"href": "http://localhost/inspection/a8812ac6-8052-4764-9e42-70f6e1446bf9", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project [0.092732s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b70d4b37-b02f-48aa-9a5f-66bd632fc6ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node [0.078771s] ... 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_node.TestPatch.test_patch_volume_targets_subresource [0.175739s] ... 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-ff66656b-9d6a-4de8-ba13-def7fd9c550a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node_list [0.091509s] ... 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.TestCheckCleanSteps.test__check_clean_steps_not_list [0.065780s] ... 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.TestListNodes.test_detail_query_false [0.196419s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fcf87d88-da63-4610-9d21-423b1aa1067b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
GET /v1/nodes?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d397652d-0558-490b-aff2-cad9117530f8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id [0.123293s] ... 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-4ca13a20-34fa-4cf0-ab61-776f3804bb45
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.295512s] ... 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-195e612e-0cd2-4e76-87b5-e2733a904a1d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-739811b6-0094-4962-be86-630dc8f68735
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '73027e78-f358-4b9e-a049-90341938601c', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/73027e78-f358-4b9e-a049-90341938601c
Openstack-Request-Id: req-0219a497-415a-469f-bb92-968d6307028f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "73027e78-f358-4b9e-a049-90341938601c", "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/73027e78-f358-4b9e-a049-90341938601c", "rel": "self"}, {"href": "http://localhost/nodes/73027e78-f358-4b9e-a049-90341938601c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/73027e78-f358-4b9e-a049-90341938601c/ports", "rel": "self"}, {"href": "http://localhost/nodes/73027e78-f358-4b9e-a049-90341938601c/ports", "rel": "bookmark"}]}
GET /v1/nodes/73027e78-f358-4b9e-a049-90341938601c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5ba51082-ada6-4b63-a162-2dfd2b196919
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "73027e78-f358-4b9e-a049-90341938601c", "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/73027e78-f358-4b9e-a049-90341938601c", "rel": "self"}, {"href": "http://localhost/nodes/73027e78-f358-4b9e-a049-90341938601c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/73027e78-f358-4b9e-a049-90341938601c/ports", "rel": "self"}, {"href": "http://localhost/nodes/73027e78-f358-4b9e-a049-90341938601c/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.087053s] ... 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.TestListNodes.test_detail_snmpv3 [0.102632s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bf1ebd81-1cc6-4d92-9e89-f93e719b9383
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:42.863807+00:00", "updated_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"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.099765s] ... 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.TestPost.test_create_node_chassis_uuid_not_found [0.151979s] ... 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-a2df35cf-e087-4b03-ac12-9918b1f99288
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.217080s] ... 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-e422d90c-d817-4363-bcca-4c901c3002df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:42.876064+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.075594s] ... 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.TestListNodes.test_detail_sort_key_allowed [0.136434s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?sort_key=resource_class WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e7b43825-8006-4356-bcfe-33306c604c88
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "cd07cc7f-c48f-40bd-b755-47053e10e9be", "created_at": "2025-06-04T21:49:42.998681+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/cd07cc7f-c48f-40bd-b755-47053e10e9be", "rel": "self"}, {"href": "http://localhost/nodes/cd07cc7f-c48f-40bd-b755-47053e10e9be", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cd07cc7f-c48f-40bd-b755-47053e10e9be/ports", "rel": "self"}, {"href": "http://localhost/nodes/cd07cc7f-c48f-40bd-b755-47053e10e9be/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cd07cc7f-c48f-40bd-b755-47053e10e9be/states", "rel": "self"}, {"href": "http://localhost/nodes/cd07cc7f-c48f-40bd-b755-47053e10e9be/states", "rel": "bookmark"}]}, {"uuid": "66ff9cdc-495f-435b-84d7-f736f7c691fa", "created_at": "2025-06-04T21:49:42.996963+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/66ff9cdc-495f-435b-84d7-f736f7c691fa", "rel": "self"}, {"href": "http://localhost/nodes/66ff9cdc-495f-435b-84d7-f736f7c691fa", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/66ff9cdc-495f-435b-84d7-f736f7c691fa/ports", "rel": "self"}, {"href": "http://localhost/nodes/66ff9cdc-495f-435b-84d7-f736f7c691fa/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/66ff9cdc-495f-435b-84d7-f736f7c691fa/states", "rel": "self"}, {"href": "http://localhost/nodes/66ff9cdc-495f-435b-84d7-f736f7c691fa/states", "rel": "bookmark"}]}, {"uuid": "c95e8a4b-2c22-4fb0-8ac2-799e7c7757e4", "created_at": "2025-06-04T21:49:42.994571+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/c95e8a4b-2c22-4fb0-8ac2-799e7c7757e4", "rel": "self"}, {"href": "http://localhost/nodes/c95e8a4b-2c22-4fb0-8ac2-799e7c7757e4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c95e8a4b-2c22-4fb0-8ac2-799e7c7757e4/ports", "rel": "self"}, {"href": "http://localhost/nodes/c95e8a4b-2c22-4fb0-8ac2-799e7c7757e4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c95e8a4b-2c22-4fb0-8ac2-799e7c7757e4/states", "rel": "self"}, {"href": "http://localhost/nodes/c95e8a4b-2c22-4fb0-8ac2-799e7c7757e4/states", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.090063s] ... 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.TestListNodes.test_detail_sort_key_not_allowed [0.081727s] ... 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-e8068d89-fd7d-4516-a86a-437c45caa4f0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.197434s] ... 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-53d1c4e4-e1ce-4ce8-ba4a-df9c072eac7b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.11
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:43.131544+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-7605e3ea-150a-4ed0-8fe1-6bb7385f15c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:43.131544+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.085003s] ... 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.TestListNodes.test_detail_using_query [0.125251s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f2b76140-a0f3-41e9-9e39-96df80012e10
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:43.211307+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.230009s] ... 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-92b5901d-0bab-4b3e-bc89-7369d72de4e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.078604s] ... 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.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.082136s] ... 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.TestPost.test_create_node_default_state_none [0.243294s] ... 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-0a509dc9-f113-48c6-ad0c-35e3fa22a53d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:43.362784+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-7e36d5b9-69a2-41fd-9b01-94a97c44a587
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:43.362784+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-ee5a53e8-ded1-4f02-ade1-297e31371126
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:43.362784+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.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.078032s] ... 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.TestCheckCleanSteps.test__check_clean_steps_valid [0.128268s] ... 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.TestCheckCleanSteps.test_check__check_steps_wrappers [0.064700s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.239683s] ... 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-2bb507e6-9ffc-4b3a-8b40-2204e4bbbc71
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:43.625699+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-023f93f1-efbc-4e8f-a82a-61455ca83bb8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:43.625699+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_get_all_custom_fields [0.126451s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/firmware?fields=component,last_version_flashed WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-923daba3-671a-4ec4-af3a-bd9a9a264a61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.86
{"firmware": [{"created_at": "2025-06-04T21:49:43.727659+00:00", "updated_at": null, "component": "BIOS", "last_version_flashed": null}, {"created_at": "2025-06-04T21:49:43.715030+00:00", "updated_at": null, "component": "bmc", "last_version_flashed": null}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize [0.160516s] ... 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-f8f5b896-221c-4bb4-993f-0c154e8be79d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781
    234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed' is too long\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.652369s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-38c63e68-6401-4eab-b177-336b6fc29e2c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field [0.704252s] ... 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-ea423ffc-d8c6-4550-b808-400539b0c5a8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /last_error. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.107538s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=False&fields=name WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ee2a05f0-0192-4966-ada7-c83c484bb57b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off [0.232186s] ... 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-ba4e7cad-4b2c-4357-914c-49412bad37c9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:44.046248+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-014a069b-4661-456f-95ea-209c1efa229e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:44.046248+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.084835s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7fb0c622-4212-487f-874a-cee3db3c0400
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field [0.208331s] ... 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-df73d981-b1ea-43cb-a43f-96e5311f2322
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'driver' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off_old_api_version [0.131177s] ... 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-1e3989d2-5978-411a-8a3e-1ed97e0bb5ce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.94
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.151565s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?associated=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-329093ce-3e6c-4843-83aa-cca1fd207a3f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "52cce26d-3fb0-4fc8-8806-2429ae890d0b", "created_at": "2025-06-04T21:49:44.183219+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": "052900c1-2be6-4f72-933d-37e98a142d4b", "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/52cce26d-3fb0-4fc8-8806-2429ae890d0b", "rel": "self"}, {"href": "http://localhost/nodes/52cce26d-3fb0-4fc8-8806-2429ae890d0b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/52cce26d-3fb0-4fc8-8806-2429ae890d0b/ports", "rel": "self"}, {"href": "http://localhost/nodes/52cce26d-3fb0-4fc8-8806-2429ae890d0b/ports", "rel": "bookmark"}]}, {"uuid": "a941ff2e-a33f-44d8-800b-6a88e2d8a922", "created_at": "2025-06-04T21:49:44.184826+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": "a2311d1b-7005-483a-8aa7-275cf035053e", "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/a941ff2e-a33f-44d8-800b-6a88e2d8a922", "rel": "self"}, {"href": "http://localhost/nodes/a941ff2e-a33f-44d8-800b-6a88e2d8a922", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a941ff2e-a33f-44d8-800b-6a88e2d8a922/ports", "rel": "self"}, {"href": "http://localhost/nodes/a941ff2e-a33f-44d8-800b-6a88e2d8a922/ports", "rel": "bookmark"}]}, {"uuid": "d28d54ca-5064-46ac-9c78-6a4b60daad86", "created_at": "2025-06-04T21:49:44.203888+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": "09c39444-fda6-4f83-85c9-6c80ee267059", "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/d28d54ca-5064-46ac-9c78-6a4b60daad86", "rel": "self"}, {"href": "http://localhost/nodes/d28d54ca-5064-46ac-9c78-6a4b60daad86", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d28d54ca-5064-46ac-9c78-6a4b60daad86/ports", "rel": "self"}, {"href": "http://localhost/nodes/d28d54ca-5064-46ac-9c78-6a4b60daad86/ports", "rel": "bookmark"}]}, {"uuid": "1c347d36-3e85-456b-b4e8-30091cbf173c", "created_at": "2025-06-04T21:49:44.205886+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": "62c862eb-c919-4868-87dc-e5f7ccb48d5b", "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/1c347d36-3e85-456b-b4e8-30091cbf173c", "rel": "self"}, {"href": "http://localhost/nodes/1c347d36-3e85-456b-b4e8-30091cbf173c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1c347d36-3e85-456b-b4e8-30091cbf173c/ports", "rel": "self"}, {"href": "http://localhost/nodes/1c347d36-3e85-456b-b4e8-30091cbf173c/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail [0.125541s] ... 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-3f3f778d-3c4c-44c7-b579-da5885eaa7e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.135937s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?instance_uuid=456a296d-fcc1-4baa-b156-339f5163b12a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d79abfd-983f-419f-80c0-275d84394c4b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "4462e001-3326-4c68-af7a-87e4f8e5282f", "created_at": "2025-06-04T21:49:44.350867+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": "456a296d-fcc1-4baa-b156-339f5163b12a", "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/4462e001-3326-4c68-af7a-87e4f8e5282f", "rel": "self"}, {"href": "http://localhost/nodes/4462e001-3326-4c68-af7a-87e4f8e5282f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4462e001-3326-4c68-af7a-87e4f8e5282f/ports", "rel": "self"}, {"href": "http://localhost/nodes/4462e001-3326-4c68-af7a-87e4f8e5282f/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_get_all_firmware_components [0.656558s] ... 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-230fec5f-e721-45d8-b5e3-7f2decd98bfa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.86
{"firmware": [{"created_at": "2025-06-04T21:49:44.409663+00:00", "updated_at": null, "component": "BIOS", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}, {"created_at": "2025-06-04T21:49:44.408784+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.205757s] ... 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-ab282ba4-8c7d-42f8-81db-2fe2b1f73604
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:44.387328+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-691d2d93-f6ac-41d4-81f3-3fa0c7725480
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:44.387328+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty [0.102517s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a69a22d4-3457-466e-a468-ddb4c6a9c937
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": []}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_wrong_version_get_all_firmware_components_old_version [0.091133s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.244463s] ... 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-1a88f480-1f37-4f50-be9c-5021cfa3deb5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:44.366731+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.131319s] ... 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-fd20e2b3-c9f9-467b-93ab-78ffae1f6449
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "power_interface": null, "raid_interface": null, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.138878s] ... 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-1855d745-8cbd-419c-8896-e80bda75dae5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_default_conductor_group [0.246482s] ... 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-370e5ecc-43b1-420f-8ea8-b4ebdcd96f41
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:44.645659+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-d3442b5e-9075-4fe3-8987-9f76cc8e06cf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:44.645659+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.091908s] ... 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-a159064a-22d7-4528-a265-9101a878d2b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard [0.251988s] ... 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-dcc1ab93-9113-494f-af94-6a3f45a25b16
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:44.610151+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields [0.099683s] ... 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-c49eabda-6325-4196-9d45-708b12a6d712
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"automated_clean": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard_fail_wrong_version [0.096316s] ... 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-e1b225ff-9d00-46b6-a42f-2b4562772b9b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id [0.212731s] ... 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-39e12eed-32e5-4ba6-b9b8-b882e6e98231
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device [0.127705s] ... 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-bbadce4c-dd2a-428f-87b8-db192a58a1cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"boot_device": "pxe", "persistent": true}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface [0.274840s] ... 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-28e4ad3a-0a35-4459-ba1b-4e97d4b109ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "neutron", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7e667122-e615-457f-99f9-1ac84217c191
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "neutron", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href":
     "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress [0.095777s] ... 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-921f37d9-edf8-4cde-a7e2-7563125818be
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_uuid: 52:54:00:cf:2d:31\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.110891s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/spam/management/boot_device WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-43ddf679-da3f-4dc3-85fe-4929cc4f0f31
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"boot_device": "pxe", "persistent": true}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.172559s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content
Openstack-Request-Id: req-fbfd5239-f7db-4979-b225-94fa471f14de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.103091s] ... 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-c3c98b08-8515-498f-92d8-ffaa3ac885d4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.305022s] ... 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-9bc8b43d-633a-452e-a1ff-4a55afb17226
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:44.968399+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.296411s] ... 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-a046a9fc-e7be-4efd-b68b-f2079f638752
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:45.206028+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-4af5c835-c9b1-4249-981c-94c28391773d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:45.206028+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.186728s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-85040b64-4657-4995-9e79-a03b2b088a4e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.TestPatch.test_replace_consoled_enabled [0.141158s] ... 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-c839bb4d-a0ba-41db-a026-7be3845266da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /console_enabled. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields [0.169261s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=uuid,instance_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d67e7764-c71b-455c-be14-d78a6fd8e32f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "39953e38-672e-4436-9ebc-203bee8b9e4b", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/39953e38-672e-4436-9ebc-203bee8b9e4b", "rel": "self"}, {"href": "http://localhost/nodes/39953e38-672e-4436-9ebc-203bee8b9e4b", "rel": "bookmark"}]}, {"uuid": "b57026a6-374e-46d2-a4bf-0eaff1dae561", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/b57026a6-374e-46d2-a4bf-0eaff1dae561", "rel": "self"}, {"href": "http://localhost/nodes/b57026a6-374e-46d2-a4bf-0eaff1dae561", "rel": "bookmark"}]}, {"uuid": "f3d9c4bd-4a5c-4d5b-b8e6-6ab4eff83bda", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/f3d9c4bd-4a5c-4d5b-b8e6-6ab4eff83bda", "rel": "self"}, {"href": "http://localhost/nodes/f3d9c4bd-4a5c-4d5b-b8e6-6ab4eff83bda", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.133552s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/65d6e330-5fa5-4e29-acd1-9eae6bf061fe GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b7d251b5-96fb-4f2b-82cf-1e49a6fedb0a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields_as_list [0.174754s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=uuid&fields=instance_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1bccc488-8e13-4030-b4f6-8e39dd64618c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "5567b1ad-20b7-40f1-a3ff-7274c736b895", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/5567b1ad-20b7-40f1-a3ff-7274c736b895", "rel": "self"}, {"href": "http://localhost/nodes/5567b1ad-20b7-40f1-a3ff-7274c736b895", "rel": "bookmark"}]}, {"uuid": "7278d511-b66c-451b-89e7-548217f005bd", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/7278d511-b66c-451b-89e7-548217f005bd", "rel": "self"}, {"href": "http://localhost/nodes/7278d511-b66c-451b-89e7-548217f005bd", "rel": "bookmark"}]}, {"uuid": "3e2ce9d1-db58-445a-948b-7c1c6cf54270", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/3e2ce9d1-db58-445a-948b-7c1c6cf54270", "rel": "self"}, {"href": "http://localhost/nodes/3e2ce9d1-db58-445a-948b-7c1c6cf54270", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.241898s] ... 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-8985a477-7810-4d24-8b7b-2bb03cb255e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /power_state. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type [0.166380s] ... 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-005b9168-18aa-4e35-a824-141e6664a3e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:45.558698+00:00", "updated_at": "2025-06-04T21:49:45.646910+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1", "network_type": "unmanaged"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api [0.100848s] ... 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-8d74c836-d75b-4ebf-a13c-808100d863b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova [0.265893s] ... 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-1b4240de-3750-452d-ade2-2b0bc82baf3b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "14571a96-4f51-4940-a726-bc4656fe2c27", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "0b91f3cf-ee84-4681-9381-cadd41fae431", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/14571a96-4f51-4940-a726-bc4656fe2c27", "rel": "self"}, {"href": "http://localhost/nodes/14571a96-4f51-4940-a726-bc4656fe2c27", "rel": "bookmark"}]}, {"uuid": "4b51b831-f74e-40c0-8303-e1595de7416a", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "6890cc8b-1678-4255-8bf9-33a49004e44f", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/4b51b831-f74e-40c0-8303-e1595de7416a", "rel": "self"}, {"href": "http://localhost/nodes/4b51b831-f74e-40c0-8303-e1595de7416a", "rel": "bookmark"}]}, {"uuid": "bd850948-5092-4952-9803-9f9c00542be3", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "c3983b09-1a24-49e5-8b7b-b0588f51fdc9", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/bd850948-5092-4952-9803-9f9c00542be3", "rel": "self"}, {"href": "http://localhost/nodes/bd850948-5092-4952-9803-9f9c00542be3", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi [0.179543s] ... 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-f6d382bd-515e-4f55-8af1-cccf95dce08f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:45.832457+00:00", "updated_at": "2025-06-04T21:49:45.926698+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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.348623s] ... 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-68adb0b1-b423-4538-9f6c-7911263034bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:45.693176+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.186245s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fields=name&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4d4073de-0594-40ab-ace1-0cc4ec0879ec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/51f971fe-d047-45a7-a839-bf72f841d92b", "rel": "self"}, {"href": "http://localhost/nodes/51f971fe-d047-45a7-a839-bf72f841d92b", "rel": "bookmark"}]}, {"name": null, "links": [{"href": "http://localhost/v1/nodes/c4f4f994-0136-4f71-89c4-f7d80aea8190", "rel": "self"}, {"href": "http://localhost/nodes/c4f4f994-0136-4f71-89c4-f7d80aea8190", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=c4f4f994-0136-4f71-89c4-f7d80aea8190"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id [0.101080s] ... 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-393dec5b-f428-4b26-bd19-cce76aa5d0bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field [0.163067s] ... 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-365b9215-ae9d-4404-9d57-ef9d9fc292c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.188539s] ... 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-011967aa-fcea-4db4-be45-9b1f5934c1d1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:46.120060+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.354203s] ... 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-5939bf2c-f609-4bae-8f63-920e54fafa92
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:46.056013+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.148702s] ... 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-b3494b18-17f7-4d85-bfc7-443d4eb6693d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.185125s] ... 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-bf2318b8-bc72-4b6f-8846-3d726fdb5593
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:46.305593+00:00", "updated_at": "2025-06-04T21:49:46.398169+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}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [1.143172s] ... 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-3e0b83ac-dc11-4dbf-9e01-49152377e9b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd010601-df2e-4c6b-910e-a3cd6baa1363
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_in
    terface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.151978s] ... 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-d0924b3d-47f2-4ccf-b867-5047f75528f0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"conductor_group": "", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version [0.104038s] ... 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-d5b0ba52-5b48-44c5-b416-0666e680dc7e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.116124s] ... 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-ab4e7641-06e1-4b0e-944d-241e046b56ae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.335837s] ... 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-f4da73c4-da8c-484c-8ad0-43f3c864c81d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.178105s] ... 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-a1bfac52-3b7e-4347-8726-4babc04ae6ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_disabled_bios_boot_mode [0.238151s] ... 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-bcefd0a4-b72f-4abd-867b-f57ffbe30165
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'bios' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information [0.146615s] ... 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-48185c9e-5c65-4f5f-b70f-b18c680a1072
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"console_enabled": true, "console_info": {"test": "test-data"}}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.216433s] ... 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-896b17bc-f7b9-4427-97c3-c23de43b0537
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /provision_updated_at. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.242110s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'fd3c3518-c3c7-4ee5-be28-c1ecf7ea190e', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ba369322-8b6f-4d4d-883f-33c8ca00a622
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:46.724108+00:00", "updated_at": "2025-06-04T21:49:46.867414+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": "fd3c3518-c3c7-4ee5-be28-c1ecf7ea190e"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_disabled_uefi_boot_mode [0.206297s] ... 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-36da654c-dbb3-4538-9fc0-3731d1c50d35
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.134261s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/spam/states/console WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9ee648e1-3632-48f4-8d53-d53ae756b2f3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"console_enabled": true, "console_info": {"test": "test-data"}}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_invalid_boot_mode [0.077548s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.096167s] ... 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-aa6bcad4-1892-47da-9fec-05ed4b46d00d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"console_enabled": false, "console_info": null}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.148541s] ... 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-f09b184a-f7cc-4b3d-bc7f-de1dfa716a8c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.bios' entrypoint: foo. Valid interfaces are ['fake', 'no-bios'].\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root [0.253812s] ... 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-3f327897-0263-4a12-9d49-d699e088faf1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:46.993729+00:00", "updated_at": "2025-06-04T21:49:47.114401+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.101421s] ... 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-d974e639-0325-407b-a0d7-45d9fcbf2e55
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.083168s] ... 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-7fb27e85-b2cc-415a-a2ad-d039df689ff3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent [0.141000s] ... 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-0d71be2a-0fb1-461c-a913-fa9a86f44ae5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis [0.138145s] ... 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-d51caa95-eb0b-48c5-aaee-8e6f622f67f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 0 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields [0.086460s] ... 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-98c66226-d659-43d0-83c6-0dd6e52a5bd0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field spongebob is not a valid field.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.099220s] ... 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-7af58ef1-8e15-4284-8e48-589ce7187c7c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"description": "useful piece", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.128942s] ... 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-055d922f-7a35-44fe-902d-0d8670d51e72
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string [0.214247s] ... 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-48597af1-2d91-435d-b588-64399937f024
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_disable_power_off_fields [0.114999s] ... 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-3db39d23-8e61-445b-91ce-ea9a933d6824
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"disable_power_off": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.157292s] ... 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-e2825df4-9362-4c64-8e81-6be62d644b9f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.network' entrypoint: foo. Valid interfaces are ['flat', 'neutron', 'noop'].\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state [0.090784s] ... 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-aaf2dd6c-b713-43bc-afc0-a94a0b1bea61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"state": "on"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.208930s] ... 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-03787447-0e8b-4211-90cb-2125e58d3672
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported [0.135000s] ... 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-cd7f5fcf-5780-4616-ba22-bd28aa44791a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.196216s] ... 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-84650f10-fa1b-40d9-86d8-6fce0bb6435d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.storage' entrypoint: foo. Valid interfaces are ['fake', 'noop'].\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning [0.153892s] ... 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-d831a5f6-c867-4fa8-bd1d-d63bddc5406d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"state": "on"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long [0.213968s] ... 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-da59ec5d-e525-4690-b32f-dd8f03f55b2a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [1.129828s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72 WITH [{'path': '/boot_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-06774209-9e70-4df6-8919-534be2b9d125
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "created_at": "2025-06-04T21:49:46.999198+00:00", "updated_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/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72 WITH [{'path': '/console_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dd899557-78eb-4974-883a-3079a6903a26
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "created_at": "2025-06-04T21:49:46.999198+00:00", "updated_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/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72 WITH [{'path': '/deploy_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-70957c94-d44f-4813-97d8-881b5a1292b7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "created_at": "2025-06-04T21:49:46.999198+00:00", "updated_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/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "self"}, {"href": "http://localhost/nodes/1e
    b7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72 WITH [{'path': '/inspect_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-34d204da-c46c-4b63-9458-0a67c09780e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "created_at": "2025-06-04T21:49:46.999198+00:00", "updated_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/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72 WITH [{'path': '/ma
    nagement_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b4233f6b-2512-4c72-8f13-3092499cfb45
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "created_at": "2025-06-04T21:49:46.999198+00:00", "updated_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/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72 WITH [{'path': '/power_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b6afdbea-daed-4a94-b068-e1ed4a13f502
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "created_at": "2025-06-04T21:49:46.999198+00:00", "updated_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/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72 WITH [{'path': '/raid_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a409506-36aa-421c-99c9-46262b9dd6bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "created_at": "2025-06-04T21:49:46.999198+00:00", "updated_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/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "bookmark"}], "conductor":
     null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72 WITH [{'path': '/vendor_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-83f10212-6e6b-4f02-a5ae-5c275e865b39
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "created_at": "2025-06-04T21:49:46.999198+00:00", "updated_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/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "self"}, {"href": "http://localhost/nodes/1eb7e16e-c035-4bda-a57b-1ba6a5109d72/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field [0.130816s] ... 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-6906427c-a276-463b-8530-ae2d953132ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"lessee": "some-lucky-project", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee [0.313300s] ... 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-64642b01-91a9-4d31-87df-88efa8f05804
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:47.997255+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-baa89c4e-8fe4-4d7c-8daa-fbe1a003f977
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:47.997255+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.225447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/b489f15e-ca40-42cb-9f1d-574adbd5f83c WITH [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-95337f5a-aa7c-4e67-a67c-1dd8cd1fbe7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.207989s] ... 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-fdded700-122a-434d-a6cc-524310dbb328
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields [0.188647s] ... 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-643d8b89-8cbe-4d1d-954c-6386693d5b34
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"network_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version [0.249115s] ... 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-dc7dde64-a890-41f4-93b9-67dd4878854b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.163493s] ... 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-d9be638d-aac7-4b92-871d-6c1e65893b73
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The reset_interfaces parameter can only be used when changing the node's driver.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.142147s] ... 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-8b217f3d-8474-4e25-9931-5e5787911b7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type [0.305109s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/aa3702d9-996b-4361-86d7-e0b7be46403e WITH [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f063ff4f-8629-4d51-9162-1c7198ec52f7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"uuid": "aa3702d9-996b-4361-86d7-e0b7be46403e", "created_at": "2025-06-04T21:49:48.314928+00:00", "updated_at": "2025-06-04T21:49:48.432909+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/aa3702d9-996b-4361-86d7-e0b7be46403e", "rel": "self"}, {"href": "http://localhost/ports/aa3702d9-996b-4361-86d7-e0b7be46403e", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.164160s] ... 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-192d63fc-11f8-46e1-b5e3-54f691bbdcf8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with invalid name ''\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api [0.092099s] ... 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-150bdf46-ab8f-4154-ad18-828a87e146e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.165652s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-988a537d-71f9-4360-ad13-9dd30681f0a5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": []}
GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-670169b5-660e-4c63-8393-95c22a050cec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": [{"uuid": "1eaf50f3-72b4-43d9-a9ae-9dbd25513d94", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1eaf50f3-72b4-43d9-a9ae-9dbd25513d94", "rel": "self"}, {"href": "http://localhost/nodes/1eaf50f3-72b4-43d9-a9ae-9dbd25513d94", "rel": "bookmark"}]}, {"uuid": "cdd482ee-94d7-466a-a18d-05144872034b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cdd482ee-94d7-466a-a18d-05144872034b", "rel": "self"}, {"href": "http://localhost/nodes/cdd482ee-94d7-466a-a18d-05144872034b", "rel": "bookmark"}]}]}
GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-58798bc4-b554-41f9-855f-170101bdf0ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": [{"uuid": "cdd482ee-94d7-466a-a18d-05144872034b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cdd482ee-94d7-466a-a18d-05144872034b", "rel": "self"}, {"href": "http://localhost/nodes/cdd482ee-94d7-466a-a18d-05144872034b", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.098851s] ... 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-67b34d91-1c33-46fb-bf81-5e7e64774c6c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.146783s] ... 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-965ca697-c03c-4671-9a25-01670a2c9825
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.332335s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505 WITH [{'path': '/network_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-58f80c1a-890a-4ec3-adb9-32698b162232
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "28f2163f-8c77-4954-bbcd-143fdd2b7505", "created_at": "2025-06-04T21:49:48.522744+00:00", "updated_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/28f2163f-8c77-4954-bbcd-143fdd2b7505", "rel": "self"}, {"href": "http://localhost/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505/ports", "rel": "self"}, {"href": "http://localhost/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505/states", "rel": "self"}, {"href": "http://localhost/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505/volume", "rel": "self"}, {"href": "http://localhost/nodes/28f2163f-8c77-4954-bbcd-143fdd2b7505/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.161855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9c93eb8c-13fb-4b23-b567-2e07560c0df8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "c6036bb1-c690-42b2-a14d-e9a0f84d299e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e", "rel": "self"}, {"href": "http://localhost/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e", "rel": "bookmark"}]}]}
GET /v1/nodes?conductor_group=group2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e472706f-b2bd-418c-a6b6-5f73438c93dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "08444a3d-d6a9-41b4-8b04-27612d948eca", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca", "rel": "self"}, {"href": "http://localhost/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-acd17f21-8f0a-4d46-a463-3894633a36a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "c6036bb1-c690-42b2-a14d-e9a0f84d299e", "created_at": "2025-06-04T21:49:48.619734+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/c6036bb1-c690-42b2-a14d-e9a0f84d299e", "rel": "self"}, {"href": "http://localhost/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e/ports", "rel": "self"}, {"href": "http://localhost/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e/states", "rel": "self"}, {"href": "http://localhost/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e/volume", "rel": "self"}, {"href": "http://localhost/nodes/c6036bb1-c690-42b2-a14d-e9a0f84d299e/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?conductor_group=group2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b2fa6e7d-8d54-4881-a
    817-ad4444aca4ce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"nodes": [{"uuid": "08444a3d-d6a9-41b4-8b04-27612d948eca", "created_at": "2025-06-04T21:49:48.631525+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/08444a3d-d6a9-41b4-8b04-27612d948eca", "rel": "self"}, {"href": "http://localhost/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca/ports", "rel": "self"}, {"href": "http://localhost/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca/states", "rel": "self"}, {"href": "http://localhost/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca/volume", "rel": "self"}, {"href": "http://localhost/nodes/08444a3d-d6a9-41b4-8b04-27612d948eca/volume", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field [0.153319s] ... 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-11857692-4f56-45ac-8f5e-fe1acbf1bae9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'address' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.072768s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-4296dfbc-a18c-42cb-85a5-377b12514561
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"}
GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-4ca2f355-4814-425a-890c-a9ce51432749
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.225816s] ... 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-c69c3d02-393b-47fe-baa5-254af8e5b353
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:48.848906+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-405d13ee-9636-4f00-ab00-c0e5d69df3f8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:48.848906+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mo
    de": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.109097s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-afb5ab6f-768e-49d6-a490-3d700cf03936
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": []}
GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-366ad5f8-4f83-424b-bb35-582fec795f21
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"nodes": []}
GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4ae3cc74-6d45-4fa3-8520-78f180c374b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Some unexpected thing happened\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.062669s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-7221df0b-8db8-457f-a6e6-f93bfef35883
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.49\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.334594s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/96810f47-4989-429e-8005-90eb1b3f36b4 WITH [{'path': '/storage_interface', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dbd3420e-c1d7-4321-867a-ff0caad5732e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "96810f47-4989-429e-8005-90eb1b3f36b4", "created_at": "2025-06-04T21:49:48.862422+00:00", "updated_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/96810f47-4989-429e-8005-90eb1b3f36b4", "rel": "self"}, {"href": "http://localhost/nodes/96810f47-4989-429e-8005-90eb1b3f36b4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/96810f47-4989-429e-8005-90eb1b3f36b4/ports", "rel": "self"}, {"href": "http://localhost/nodes/96810f47-4989-429e-8005-90eb1b3f36b4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/96810f47-4989-429e-8005-90eb1b3f36b4/states", "rel": "self"}, {"href": "http://localhost/nodes/96810f47-4989-429e-8005-90eb1b3f36b4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/96810f47-4989-429e-8005-90eb1b3f36b4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/96810f47-4989-429e-8005-90eb1b3f36b4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/96810f47-4989-429e-8005-90eb1b3f36b4/volume", "rel": "self"}, {"href": "http://localhost/nodes/96810f47-4989-429e-8005-90eb1b3f36b4/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi [0.261771s] ... 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-3102e6d5-7607-4f1d-997c-4dea0d0c1520
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:48.866400+00:00", "updated_at": "2025-06-04T21:49:48.973029+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-5a12ed8b-fb93-4672-9445-eda750bd0d82
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:48.866400+00:00", "updated_at": "2025-06-04T21:49:49.050525+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.150278s] ... 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-f09d0e83-5ef1-48fe-82dd-bdc84dddaa91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.119436s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?description_contains=cat WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-13fdbb34-9d93-4bae-b524-8ca14990ccd9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"nodes": [{"uuid": "77411776-5b3c-4074-80bd-bb131dbd48b1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/77411776-5b3c-4074-80bd-bb131dbd48b1", "rel": "self"}, {"href": "http://localhost/nodes/77411776-5b3c-4074-80bd-bb131dbd48b1", "rel": "bookmark"}]}]}
GET /v1/nodes?description_contains=dog WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-779a910e-c594-4a3b-9344-2e3c2462c5ab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"nodes": [{"uuid": "cbf27422-8c59-40ee-8121-046d952a743d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cbf27422-8c59-40ee-8121-046d952a743d", "rel": "self"}, {"href": "http://localhost/nodes/cbf27422-8c59-40ee-8121-046d952a743d", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id [0.100408s] ... 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-de560a84-cecb-4db6-8ddd-8d0e00a69cf5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid [0.161419s] ... 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-a10689e0-307d-440f-8a48-7e8322f18b43
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:49.201515+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver [0.128323s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?driver=ipmi WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c109dad0-8eb3-40f2-bdb4-a1ee795e891e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"nodes": [{"uuid": "ee2bdf72-e818-449a-a196-68f0fc385b29", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ee2bdf72-e818-449a-a196-68f0fc385b29", "rel": "self"}, {"href": "http://localhost/nodes/ee2bdf72-e818-449a-a196-68f0fc385b29", "rel": "bookmark"}]}]}
GET /v1/nodes?driver=fake-hardware WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7b05c684-a8b2-4317-923f-67faea5e7d86
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"nodes": [{"uuid": "74eee0c6-a2e3-42c3-8b8e-29454196d83e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/74eee0c6-a2e3-42c3-8b8e-29454196d83e", "rel": "self"}, {"href": "http://localhost/nodes/74eee0c6-a2e3-42c3-8b8e-29454196d83e", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.111804s] ... 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-f5f57906-8d92-440b-a8ee-c777e556b7aa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.069361s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?driver=fake WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-2461491b-e48b-4736-8178-2a72ae78ac0c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.318751s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/6627726f-8a9f-4785-80d2-0f3a2e22fbc3 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-49e0d958-e823-426c-9f17-229519eeeed4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "6627726f-8a9f-4785-80d2-0f3a2e22fbc3", "created_at": "2025-06-04T21:49:49.200982+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/6627726f-8a9f-4785-80d2-0f3a2e22fbc3", "rel": "self"}, {"href": "http://localhost/nodes/6627726f-8a9f-4785-80d2-0f3a2e22fbc3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6627726f-8a9f-4785-80d2-0f3a2e22fbc3/ports", "rel": "self"}, {"href": "http://localhost/nodes/6627726f-8a9f-4785-80d2-0f3a2e22fbc3/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class [0.200923s] ... 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-ff3c5509-db7c-4ccd-b3fe-2ee087971932
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:49.384008+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-7e1f2a9b-474c-474d-871e-da31b5ccfdb4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:49.384008+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.185429s] ... 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-8941a626-bf91-48b9-866a-a1f25d15f252
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:49.334326+00:00", "updated_at": "2025-06-04T21:49:49.441815+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}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.149485s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fault=power failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1f4ede7c-5e97-4da2-a894-d85c1a82d416
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "666ba073-1cd7-492e-a06a-c19fff2522b6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6", "rel": "self"}, {"href": "http://localhost/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6", "rel": "bookmark"}]}]}
GET /v1/nodes?fault=clean failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a7414760-cab3-48ed-a54f-56bf2150aa31
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "c1d07845-c6a0-4003-b703-4317c8879939", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c1d07845-c6a0-4003-b703-4317c8879939", "rel": "self"}, {"href": "http://localhost/nodes/c1d07845-c6a0-4003-b703-4317c8879939", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f340cb11-e89e-4f99-b669-4049471416ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "666ba073-1cd7-492e-a06a-c19fff2522b6", "created_at": "2025-06-04T21:49:49.399555+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/666ba073-1cd7-492e-a06a-c19fff2522b6", "rel": "self"}, {"href": "http://localhost/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6/ports", "rel": "self"}, {"href": "http://localhost/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6/states", "rel": "self"}, {"href": "http://localhost/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6/volume", "rel": "self"}, {"href": "http://localhost/nodes/666ba073-1cd7-492e-a06a-c19fff2522b6/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?fault=clean failure WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1c35834d-f16f-4d22-8df4-25d314f2bf92
X-Openstack-Ironic-Api-Maximum-V
    ersion: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"nodes": [{"uuid": "c1d07845-c6a0-4003-b703-4317c8879939", "created_at": "2025-06-04T21:49:49.401923+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/c1d07845-c6a0-4003-b703-4317c8879939", "rel": "self"}, {"href": "http://localhost/nodes/c1d07845-c6a0-4003-b703-4317c8879939", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c1d07845-c6a0-4003-b703-4317c8879939/ports", "rel": "self"}, {"href": "http://localhost/nodes/c1d07845-c6a0-4003-b703-4317c8879939/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c1d07845-c6a0-4003-b703-4317c8879939/states", "rel": "self"}, {"href": "http://localhost/nodes/c1d07845-c6a0-4003-b703-4317c8879939/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c1d07845-c6a0-4003-b703-4317c8879939/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c1d07845-c6a0-4003-b703-4317c8879939/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c1d07845-c6a0-4003-b703-4317c8879939/volume", "rel": "self"}, {"href": "http://localhost/nodes/c1d07845-c6a0-4003-b703-4317c8879939/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.065942s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fault=power failure WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-edfb0aef-d2e4-4c31-a1fa-be66fbc560d3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"}
GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-ea615d5d-e689-441a-9b0e-ea775fd6ae83
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.142621s] ... 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-2d2cff98-3940-493f-bbbe-f0cf7159972e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver [0.179537s] ... 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-45daf758-a79e-4548-9f15-b20f39a43e10
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 'driver' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.327222s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/b7e29db5-ac93-47ce-a638-49a29a5aea57 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7f6c8c50-125b-46e0-ad73-6d5812b0efd8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b7e29db5-ac93-47ce-a638-49a29a5aea57", "created_at": "2025-06-04T21:49:49.518114+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/b7e29db5-ac93-47ce-a638-49a29a5aea57", "rel": "self"}, {"href": "http://localhost/nodes/b7e29db5-ac93-47ce-a638-49a29a5aea57", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b7e29db5-ac93-47ce-a638-49a29a5aea57/ports", "rel": "self"}, {"href": "http://localhost/nodes/b7e29db5-ac93-47ce-a638-49a29a5aea57/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade [0.105196s] ... 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-9556a131-f505-4e5d-bfc2-8716131468d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.088262s] ... 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-db6ce652-bb58-4260-8faa-9ed746de1de4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.191056s] ... 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-0a088c4a-0cd9-4bc3-8820-549ebb768880
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:49.756628+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-81126b10-9e9f-42d8-863a-f572aaa0e233
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:49.756628+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": n
    ull, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "cowsay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.147613s] ... 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-0f8f67c0-e11d-45af-b975-2a11cfe0cb20
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.159505s] ... 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-bde09943-9df8-4706-bb43-67ed4eea1b2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.350870s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-276bb0b4-f697-4bbe-95cd-ec0797379484
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "8a29d51b-851c-4b91-ab26-fe625ba4748b", "created_at": "2025-06-04T21:49:49.847969+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/8a29d51b-851c-4b91-ab26-fe625ba4748b", "rel": "self"}, {"href": "http://localhost/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b/ports", "rel": "self"}, {"href": "http://localhost/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b/states", "rel": "self"}, {"href": "http://localhost/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b/volume", "rel": "self"}, {"href": "http://localhost/nodes/8a29d51b-851c-4b91-ab26-fe625ba4748b/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.153949s] ... 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-3b159ff8-0279-449c-b0d4-18a7e23516d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:50.025472+00:00", "updated_at": "2025-06-04T21:49:50.113969+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope [0.189556s] ... 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-080f16f4-c73d-4a93-8aea-e1c707374ee9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:50.101721+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-416fa7e3-85b9-48a7-8027-3b4595e42f33
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:50.101721+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.642252s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?fault=somefake WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3ed85983-7690-4b81-b897-66c8e692cd00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure', 'service failure')\", \"debuginfo\": null}"}
GET /v1/nodes/detail?fault=somefake WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3efc1ab7-21b8-427c-a17a-68f58e358c20
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure', 'service failure')\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.177201s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/6eadda5b-7940-4d58-9aa2-c789198c124d WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f319bb9a-12da-4fab-97ae-b2720a606a1e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.170463s] ... 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-d9d6ea70-ec50-4baf-b327-383cd84efe1f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:50.181364+00:00", "updated_at": "2025-06-04T21:49:50.283401+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.124663s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?driver=test WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-46077696-a5ca-4df9-b577-05237aa5accf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope [0.214785s] ... 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-fe233b5a-1b81-4266-b4b6-65b941c0a12b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:50.309162+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-98223ad3-6f21-414a-a3eb-6be2eeaa8727
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:50.309162+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": n
    ull, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "catsay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false [0.188185s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/986672e8-dd08-4b46-9210-19c7f72a5178 WITH [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fd6da8ed-36a9-4840-a14a-a5b48718c2d4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id [0.135556s] ... 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-cc599536-0af8-4fc1-be77-d2c7cfe75406
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state [0.106234s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?provision_state=test WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0c79d633-2633-4b0b-8169-71beea97def8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.9
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.161026s] ... 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-07f2db7f-17ef-409c-b572-5201ff498b0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.117272s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?resource_class=test WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-085e6918-7f88-4f2b-9619-4f14a8893cbc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.210503s] ... 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-7e10ff9a-16ad-45e2-98d9-43ac7720d8c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('protected' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.222907s] ... 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-9b008b5f-613e-4239-a0fc-8884772a91b6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:50.521813+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.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.117802s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?resource_class=test WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bd77abfa-2e8c-4693-a465-6c59030099e1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.308884s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/bd96e068-952a-428e-89f4-74400f297345 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-752b1293-5c39-44b2-9723-c8bc522688fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "bd96e068-952a-428e-89f4-74400f297345", "created_at": "2025-06-04T21:49:50.719971+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/bd96e068-952a-428e-89f4-74400f297345", "rel": "self"}, {"href": "http://localhost/nodes/bd96e068-952a-428e-89f4-74400f297345", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bd96e068-952a-428e-89f4-74400f297345/ports", "rel": "self"}, {"href": "http://localhost/nodes/bd96e068-952a-428e-89f4-74400f297345/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bd96e068-952a-428e-89f4-74400f297345/states", "rel": "self"}, {"href": "http://localhost/nodes/bd96e068-952a-428e-89f4-74400f297345/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bd96e068-952a-428e-89f4-74400f297345/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bd96e068-952a-428e-89f4-74400f297345/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bd96e068-952a-428e-89f4-74400f297345/volume", "rel": "self"}, {"href": "http://localhost/nodes/bd96e068-952a-428e-89f4-74400f297345/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee [0.233384s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?lessee=project1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3c7c943a-5d9e-4ed2-a49e-e1d99a406405
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "81c01d97-9942-4f4c-b2e5-f417b6f2606e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e", "rel": "self"}, {"href": "http://localhost/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e", "rel": "bookmark"}]}]}
GET /v1/nodes?lessee=project2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f4f31cca-1665-4396-919a-dd934924722c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "69029966-1c6b-4a5b-a2fb-083a947b1638", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638", "rel": "self"}, {"href": "http://localhost/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0f6352cc-b98c-4684-a0b2-8a60cb0c2874
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "81c01d97-9942-4f4c-b2e5-f417b6f2606e", "created_at": "2025-06-04T21:49:50.808221+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/81c01d97-9942-4f4c-b2e5-f417b6f2606e", "rel": "self"}, {"href": "http://localhost/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e/ports", "rel": "self"}, {"href": "http://localhost/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e/states", "rel": "self"}, {"href": "http://localhost/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/81c01d97-9942-4f4c-b2e5-f417b6f2606e/volume", "rel": "self"}, {"href": "http://localhost/nodes/81c01d97-9942-4f4c-
    b2e5-f417b6f2606e/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?lessee=project2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-449acf53-e9d1-4998-9327-7552ae304e48
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "69029966-1c6b-4a5b-a2fb-083a947b1638", "created_at": "2025-06-04T21:49:50.810200+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/69029966-1c6b-4a5b-a2fb-083a947b1638", "rel": "self"}, {"href": "http://localhost/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638/ports", "rel": "self"}, {"href": "http://localhost/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638/states", "rel": "self"}, {"href": "http://localhost/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638/volume", "rel": "self"}, {"href": "http://localhost/nodes/69029966-1c6b-4a5b-a2fb-083a947b1638/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.409461s] ... 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-a8414e77-5958-4edd-acdf-fe970560c6d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'management', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d0411fd5-154e-455f-8f8f-27642a555e42
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'states', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-46a08772-99af-4ca5-91ed-a5cfec2d2254
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'vendor_passthru', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7ad27dd5-67fa-40e5-a9a9-ea6d3146d52b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, state
    s, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'detail', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6912123f-da23-4871-b560-2cfac5a6fa4f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'name': 'validate', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7ab9f261-54cf-4e88-8330-b0eea2fd40ab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.10
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api [0.185279s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/559c5bd2-3fbb-4a3c-9226-779bdd363cfa WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-1db224ee-cbdb-4f04-8319-b4c8736c9266
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed [0.120539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?lessee=project1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-b76783cf-7040-4004-af4b-326c61f8f499
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.65\", \"debuginfo\": null}"}
GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-75321979-5074-4384-acb5-aca8d7d01f4e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.65\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.255340s] ... 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-2d66dbdf-d492-4721-8942-bdd5e880fbea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:51.212718+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-8128f02a-f69f-4f0b-b957-b4f9fda27f91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:51.212718+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode"
    : null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": "foo", "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.254215s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?owner=fred WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-34aa8698-3941-4bad-b459-b7f50a10c8b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "be482c3a-65a0-4af5-b374-cdfa755dbd57", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57", "rel": "self"}, {"href": "http://localhost/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57", "rel": "bookmark"}]}]}
GET /v1/nodes?owner=bob WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4f70a787-645a-4613-bb7d-a96d60760b1e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "1af710db-380c-4ad0-923e-7057df00a847", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1af710db-380c-4ad0-923e-7057df00a847", "rel": "self"}, {"href": "http://localhost/nodes/1af710db-380c-4ad0-923e-7057df00a847", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5007c898-c13d-47bf-86e5-3942581fe808
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "be482c3a-65a0-4af5-b374-cdfa755dbd57", "created_at": "2025-06-04T21:49:51.177610+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/be482c3a-65a0-4af5-b374-cdfa755dbd57", "rel": "self"}, {"href": "http://localhost/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57/ports", "rel": "self"}, {"href": "http://localhost/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57/states", "rel": "self"}, {"href": "http://localhost/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57/volume", "rel": "self"}, {"href": "http://localhost/nodes/be482c3a-65a0-4af5-b374-cdfa755dbd57/volume", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?owner=bob WITH {} GOT Response: 200 OK
Content-Type: 
    application/json
Openstack-Request-Id: req-dc39d82d-0e10-40b8-b2ec-97f811f0edec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"nodes": [{"uuid": "1af710db-380c-4ad0-923e-7057df00a847", "created_at": "2025-06-04T21:49:51.180011+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/1af710db-380c-4ad0-923e-7057df00a847", "rel": "self"}, {"href": "http://localhost/nodes/1af710db-380c-4ad0-923e-7057df00a847", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1af710db-380c-4ad0-923e-7057df00a847/ports", "rel": "self"}, {"href": "http://localhost/nodes/1af710db-380c-4ad0-923e-7057df00a847/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1af710db-380c-4ad0-923e-7057df00a847/states", "rel": "self"}, {"href": "http://localhost/nodes/1af710db-380c-4ad0-923e-7057df00a847/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1af710db-380c-4ad0-923e-7057df00a847/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1af710db-380c-4ad0-923e-7057df00a847/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1af710db-380c-4ad0-923e-7057df00a847/volume", "rel": "self"}, {"href": "http://localhost/nodes/1af710db-380c-4ad0-923e-7057df00a847/volume", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid [0.725213s] ... 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-21cd8df2-2a62-4f24-8e0c-b00122d7a3dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version [0.148729s] ... 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-b86aef5f-a15b-460e-857c-a247fe896ae7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description [0.345153s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1 WITH [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2e4fba40-a012-4142-9900-7f6a377f37f8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"uuid": "04b76389-0ee6-47ed-bf25-8b4e9c4691c1", "created_at": "2025-06-04T21:49:51.241801+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/04b76389-0ee6-47ed-bf25-8b4e9c4691c1", "rel": "self"}, {"href": "http://localhost/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1/ports", "rel": "self"}, {"href": "http://localhost/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1/states", "rel": "self"}, {"href": "http://localhost/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1/volume", "rel": "self"}, {"href": "http://localhost/nodes/04b76389-0ee6-47ed-bf25-8b4e9c4691c1/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.112907s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?owner=fred WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-28540282-2162-478b-97e0-2b96bc459ef8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"}
GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-25a4126f-cb65-4a29-a7be-7dae1e8e41b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.176744s] ... 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-c295df66-73d8-4dca-8bd0-d520ae8795f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:51.444800+00:00", "updated_at": "2025-06-04T21:49:51.545106+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet2", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.179317s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/d793db34-dcdc-4ae2-aafa-2bdf55ad8ebc WITH [{'path': '/description', 'value': '123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812
    3456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-25d07768-9b16-4b2f-bebf-f38c9535ddd6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node with description exceeding 4096 characters\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.185855s] ... 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-b6f51f9f-1220-4d41-a26b-ca2ece6aaa97
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:51.559858+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-39bedcc3-7380-4c3f-af36-4eec3eb6465b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:51.559858+00:00", "updated_at": null, "bios_interface": "fake", "boot_interface": "fake", "clean_step": {}, "conductor_group": "foo", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "***
    ***", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.167322s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?provision_state=available WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-208af264-718e-4c31-a3a8-e4ff1c05aa5d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.9
{"nodes": [{"uuid": "6841ac04-28ef-4bb3-a43b-dd8ccb3f022f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/6841ac04-28ef-4bb3-a43b-dd8ccb3f022f", "rel": "self"}, {"href": "http://localhost/nodes/6841ac04-28ef-4bb3-a43b-dd8ccb3f022f", "rel": "bookmark"}]}]}
GET /v1/nodes?provision_state=deploying WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-893247c0-398a-4110-887b-88d9df6df09c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.9
{"nodes": [{"uuid": "070802d1-d8b9-4b5a-9cc8-4319e98d2225", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "deploying", "name": null, "links": [{"href": "http://localhost/v1/nodes/070802d1-d8b9-4b5a-9cc8-4319e98d2225", "rel": "self"}, {"href": "http://localhost/nodes/070802d1-d8b9-4b5a-9cc8-4319e98d2225", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.109624s] ... 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-d5d87897-ec4f-4dcb-ad40-71008a432c8c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version [0.137386s] ... 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-59c21d7e-7996-49ad-962e-8108d7b5af9e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.101253s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?provision_state=test WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-de3a3133-d914-47df-85eb-fe71083062ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.8
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.125036s] ... 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-86f49ff8-bab0-4d58-85d9-39a6a5eda835
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.269281s] ... 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-380e99b7-cb33-4073-a3ce-adb4db957b37
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.149127s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?resource_class=foo WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1ac3c983-93df-4c9a-94ee-2b232107e248
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "252ca131-a61c-4df6-bcd2-3329c4c25376", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/252ca131-a61c-4df6-bcd2-3329c4c25376", "rel": "self"}, {"href": "http://localhost/nodes/252ca131-a61c-4df6-bcd2-3329c4c25376", "rel": "bookmark"}]}]}
GET /v1/nodes?resource_class=bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-68162334-99fc-4212-84eb-9f0e2ddb6ab5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "c2b681e9-5984-497d-9cf5-e0027e19f4cb", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c2b681e9-5984-497d-9cf5-e0027e19f4cb", "rel": "self"}, {"href": "http://localhost/nodes/c2b681e9-5984-497d-9cf5-e0027e19f4cb", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.181527s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '9ecb826e-2d80-444c-b222-e86d8a0e6718', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cdeb62cd-234a-49b5-8a0d-cfc51c0815db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:51.852101+00:00", "updated_at": "2025-06-04T21:49:51.965783+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": "9ecb826e-2d80-444c-b222-e86d8a0e6718"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.095052s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '1dc97ff9-d749-4c0a-a3d5-c3ee123cbaea', 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-54a8d9d8-d378-4404-97aa-5bd45a2f2f40
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.169719s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?resource_class=foo WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5bb5a6cd-6384-45b3-ad85-24c343c2c67d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "3eb98fb0-2560-4b71-bbaa-5173164b479c", "created_at": "2025-06-04T21:49:52.007553+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/3eb98fb0-2560-4b71-bbaa-5173164b479c", "rel": "self"}, {"href": "http://localhost/nodes/3eb98fb0-2560-4b71-bbaa-5173164b479c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3eb98fb0-2560-4b71-bbaa-5173164b479c/ports", "rel": "self"}, {"href": "http://localhost/nodes/3eb98fb0-2560-4b71-bbaa-5173164b479c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3eb98fb0-2560-4b71-bbaa-5173164b479c/states", "rel": "self"}, {"href": "http://localhost/nodes/3eb98fb0-2560-4b71-bbaa-5173164b479c/states", "rel": "bookmark"}]}]}
GET /v1/nodes/detail?resource_class=bar WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0828ebdc-996e-4d52-ad48-3fe813387c55
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "023ef51b-b506-4661-badf-873dd0cde814", "created_at": "2025-06-04T21:49:52.009637+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/023ef51b-b506-4661-badf-873dd0cde814", "rel": "self"}, {"href": "http://localhost/nodes/023ef51b-b506-4661-badf-873dd0cde814", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/023ef51b-b506-4661-badf-873dd0cde814/ports", "rel": "self"}, {"href": "http://localhost/nodes/023ef51b-b506-4661-badf-873dd0cde814/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/023ef51b-b506-4661-badf-873dd0cde814/states", "rel": "self"}, {"href": "http://localhost/nodes/023ef51b-b506-4661-badf-873dd0cde814/states", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info [0.279648s] ... 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-117ddd65-193d-402e-82bf-55a3d9d1fa65
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.085102s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?resource_class=fake WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-31a65885-3d73-4d3b-ba58-91c0ae48258f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_bios_boot_mode [0.082426s] ... 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-9534182c-4b7a-451a-93cf-0e3b638ed93b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'bios' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.195962s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'eacf045e-f48f-471d-849c-3af5cfebcf1a', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f42dcee8-76a9-4ca3-b848-2ea65f7c716e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:52.141384+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_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.099226s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?resource_class=fake WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-bdb9bd6d-1236-4129-bb6c-e1a4e8e7461b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_uefi_boot_mode [0.074137s] ... 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-8b4b9ced-bcfb-47fb-aa57-a5ca105f2576
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.100419s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?traits=CUSTOM_TRAIT_1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-8bc64526-a895-4dab-9afc-d2c5ecdec0bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_invalid_boot_mode [0.080257s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.107419s] ... 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-e3044367-6d1d-450f-9c63-3e4207fb3677
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.272883s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'c3afcad4-b952-4733-b724-2b11cff64689', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '70c788cb-441f-4d04-8515-8272b2a2426c', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7ae49c5e-4ef4-41d0-adba-c947a5bc3c7e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:52.360921+00:00", "updated_at": "2025-06-04T21:49:52.516306+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": "70c788cb-441f-4d04-8515-8272b2a2426c"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.147793s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2b62d376-7bde-4545-ad2d-1973b011765e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:52.588325+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular [0.228952s] ... 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-b67ecbd6-749f-478e-a89c-2e3e838ec5e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:52.641452+00:00", "updated_at": "2025-06-04T21:49:52.763442+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict [0.150336s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f3d36f1e-f6af-40d4-b135-6f7e11765fc3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:52.733458+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api [0.135392s] ... 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-0f0c0b71-3e6c-47e7-a66b-7d9a87712066
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.136411s] ... 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-bd00f945-f442-4d17-9e9a-2b0b23db8b14
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_as_list [0.142380s] ... 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-b42a98a8-987e-482b-9162-f023102d9880
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.692900s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f4c160ca-61fc-4c11-b02b-2f3e61d2cbfa WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-30d54985-f6af-4b2d-a93a-a0c9fd1f2bfe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "f4c160ca-61fc-4c11-b02b-2f3e61d2cbfa", "created_at": "2025-06-04T21:49:52.460489+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/f4c160ca-61fc-4c11-b02b-2f3e61d2cbfa", "rel": "self"}, {"href": "http://localhost/nodes/f4c160ca-61fc-4c11-b02b-2f3e61d2cbfa", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f4c160ca-61fc-4c11-b02b-2f3e61d2cbfa/ports", "rel": "self"}, {"href": "http://localhost/nodes/f4c160ca-61fc-4c11-b02b-2f3e61d2cbfa/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/4d3adebd-7db9-43df-95e7-44453884c059 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-53aeb711-c1fc-4542-a83b-0501fe4fad56
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "4d3adebd-7db9-43df-95e7-44453884c059", "created_at": "2025-06-04T21:49:52.525934+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/4d3adebd-7db9-43df-95e7-44453884c059", "rel": "self"}, {"href": "http://localhost/nodes/4d3adebd-7db9-43df-95e7-44453884c059", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4d3adebd-7db9-43df-95e7-44453884c059/ports", "rel": "self"}, {"href": "http://localhost/nodes/4d3adebd-7db9-43df-95e7-44453884c059/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/2e36f388-1f4f-479f-b203-931429553e68 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b62cc808-3181-4dfa-8e6b-7a578399b75f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "2e36f388-1f4f-479f-b203-931429553e68", "created_at": "2025-06-04T21:49:52.575818+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/2e36f388-1f4f-479f-b203-931429553e68", "rel": "self"}, {"href": "http://localhost/nodes/2e36f388-1f4f-479f-b203-931429553e68", "rel": "bookmark"}
    ], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2e36f388-1f4f-479f-b203-931429553e68/ports", "rel": "self"}, {"href": "http://localhost/nodes/2e36f388-1f4f-479f-b203-931429553e68/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/99e4a84d-2811-4645-86bc-7ff252808b2c WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e40cbf24-1a77-4fa8-b8d7-d1838e7be381
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "99e4a84d-2811-4645-86bc-7ff252808b2c", "created_at": "2025-06-04T21:49:52.608207+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/99e4a84d-2811-4645-86bc-7ff252808b2c", "rel": "self"}, {"href": "http://localhost/nodes/99e4a84d-2811-4645-86bc-7ff252808b2c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/99e4a84d-2811-4645-86bc-7ff252808b2c/ports", "rel": "self"}, {"href": "http://localhost/nodes/99e4a84d-2811-4645-86bc-7ff252808b2c/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/3ec6b2e9-4c0c-4a12-8c9d-305ea4958de8 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9f6a2918-1023-4be8-a932-e155f9fd51e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "3ec6b2e9-4c0c-4a12-8c9d-305ea4958de8", "created_at": "2025-06-04T21:49:52.661847+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/3ec6b2e9-4c0c-4a12-8c9d-305ea4958de8", "rel": "self"}, {"href": "http://localhost/nodes/3ec6b2e9-4c0c-4a12-8c9d-305ea4958de8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3ec6b2e9-4c0c-4a12-8c9d-305ea4958de8/ports", "rel": "self"}, {"href": "http://localhost/nodes/3ec6b2e9-4c0c-4a12-8c9d-305ea4958de8/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/4900722f-dd69-4ef9-8eff-e3253f349c30 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a5da5a69-7bf4-4b87-aedf-5052d314c6f0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "4900722f-dd69-4ef9-8eff-e3253f349c30", "created_at": "2025-06-04T21:49:52.707809+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/4900722f-dd69-4ef9-8eff-e3253f349c30", "rel": "self"}, {"href": "http://localhost/nodes/4900722f-dd69-4ef9-8eff-e3253f349c30", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4900722f-dd69-4ef9-8eff-e3253f349c30/ports", "rel": "self"}, {"href": "http://localhost/nodes/4900722f-dd69-4ef9-8eff-e3253f349c30/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/51631f60-1b9b-4129-b49e-378c5946fa1f WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7f75153c-db4d-497b-bffa-be860b391a84
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "51631f60-1b9b-4129-b49e-378c5946fa1f", "created_at": "2025-06-04T21:49:52.747213+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/51631f60-1b9b-4129-b49e-378c5946fa1f", "rel": "self"}, {"href": "http://localhost/nodes/51631f60-1b9b-4129-b49e-378c5946fa1f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/51631f60-1b9b-4129-b49e-378c5946fa1f/ports", "rel": "self"}, {"href": "http://localhost/nodes/51631f60-1b9b-4129-b49e-378c5946fa1f/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/cdd3d77d-1d05-484f-814a-042fbbd66743 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-241113be-1032-41d3-8c70-6de2fa39fd3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "cdd3d77d-1d05-484f-814a-042fbbd66743", "created_at": "2025-06-04T21:49:52.792408+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/cdd3d77d-1d05-484f-814a-042fbbd66743", "rel": "self"}, {"href": "http://localhost/nodes/cdd3d77d-1d05-484f-814a-042fbbd66743", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cdd3d77d-1d05-484f-814a-042fbbd66743/ports", "rel": "self"}, {"href": "http://localhost/nodes/cdd3d77d-1d05-484f-814a-042fbbd66743/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/8abd54c0-f76e-42f1-ab4f-346b885dbc34 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-931b5b9c-7534-4fd9-aa26-b0e7708a9fe0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "8abd54c0-f76e-42f1-ab4f-346b885dbc34", "created_at": "2025-06-04T21:49:52.827203+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/8abd54c0-f76e-42f1-ab4f-346b885dbc34", "rel": "self"}, {"href": "http://localhost/nodes/8abd54c0-f76e-42f1-ab4f-346b885dbc34", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8abd54c0-f76e-42f1-ab4f-346b885dbc34/ports", "rel": "self"}, {"href": "http://localhost/nodes/8abd54c0-f76e-42f1-ab4f-346b885dbc34/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/a21a1230-965d-4fd7-af8c-a98d87de85db WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4280fcfb-c583-448e-a15f-7059f46587cb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "a21a1230-965d-4fd7-af8c-a98d87de85db", "created_at": "2025-06-04T21:49:52.872428+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/a21a1230-965d-4fd7-af8c-a98d87de85db", "rel": "self"}, {"href": "http://localhost/nodes/a21a1230-965d-4fd7-af8c-a98d87de85db", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a21a1230-965d-4fd7-af8c-a98d87de85db/ports", "rel": "self"}, {"href": "http://localhost/nodes/a21a1230-965d-4fd7-af8c-a98d87de85db/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/6a1552f6-27e8-47c7-9d41-d812c9d36a98 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9de33b0a-2f82-48e1-8f94-51cc7493b800
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "6a1552f6-27e8-47c7-9d41-d812c9d36a98", "created_at": "2025-06-04T21:49:52.935133+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/6a1552f6-27e8-47c7-9d41-d812c9d36a98", "rel": "self"}, {"href": "http://localhost/nodes/6a1552f6-27e8-47c7-9d41-d812c9d36a98", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6a1552f6-27e8-47c7-9d41-d812c9d36a98/ports", "rel": "self"}, {"href": "http://localhost/nodes/6a1552f6-27e8-47c7-9d41-d812c9d36a98/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/4d2ffd7d-3534-496d-a03f-e32829cfcd7d WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-97da217a-adb9-41e2-a939-5e81cc2a3820
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "4d2ffd7d-3534-496d-a03f-e32829cfcd7d", "created_at": "2025-06-04T21:49:52.972935+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/4d2ffd7d-3534-496d-a03f-e32829cfcd7d", "rel": "self"}, {"href": "http://localhost/nodes/4d2ffd7d-3534-496d-a03f-e32829cfcd7d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4d2ffd7d-3534-496d-a03f-e32829cfcd7d/ports", "rel": "self"}, {"href": "http://localhost/nodes/4d2ffd7d-3534-496d-a03f-e32829cfcd7d/ports", "rel": "bookmark"}]}
PATCH /v1/nodes/bc4d478b-20dc-44ce-abfd-1f3fff207008 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b62676b0-ff1a-4638-8c2f-26e39e5a4c95
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "bc4d478b-20dc-44ce-abfd-1f3fff207008", "created_at": "2025-06-04T21:49:53.028664+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/bc4d478b-20dc-44ce-abfd-1f3fff207008", "rel": "self"}, {"href": "http://localhost/nodes/bc4d478b-20dc-44ce-abfd-1f3fff207008", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bc4d478b-20dc-44ce-abfd-1f3fff207008/ports", "rel": "self"}, {"href": "http://localhost/nodes/bc4d478b-20dc-44ce-abfd-1f3fff207008/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format [0.195072s] ... 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-377fae47-d532-43d5-af6d-72cb37244312
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [1.365091s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': 'c65727f9-1f31-4fbb-82c7-35501116923e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/c65727f9-1f31-4fbb-82c7-35501116923e
Openstack-Request-Id: req-bbfb8c7f-fc1f-49d6-aabb-1984a0973641
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "c65727f9-1f31-4fbb-82c7-35501116923e", "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/c65727f9-1f31-4fbb-82c7-35501116923e", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/ports", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/states", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/volume", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/volume", "rel": "bookmark"}]}
GET /v1/nodes/c65727f9-1f31-4fbb-82c7-35501116923e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4d4b9f85-14c4-4c93-b36f-703a096f19d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "c65727f9-1f31-4fbb-82c7-35501116923e", "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/c65727f9-1f31-4fbb-82c7-35501116923e", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/ports", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/states", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/volume", "rel": "self"}, {"href": "http://localhost/nodes/c65727f9-1f31-4fbb-82c7-35501116923e/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '275e332e-a3ec-478c-af4a-88136b961936', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/275e332e-a3ec-478c-af4a-88136b961936
Openstack-Request-Id: req-8c7aa34a-3ff5-4550-ac73-6e06fe02b6aa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "275e332e-a3ec-478c-af4a-88136b961936", "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/275e332e-a3ec-478c-af4a-88136b961936", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-88136b961936", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/275e332e-a3ec-478c-af4a-88136b961936/ports", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-
    88136b961936/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/275e332e-a3ec-478c-af4a-88136b961936/states", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-88136b961936/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/275e332e-a3ec-478c-af4a-88136b961936/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-88136b961936/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/275e332e-a3ec-478c-af4a-88136b961936/volume", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-88136b961936/volume", "rel": "bookmark"}]}
GET /v1/nodes/275e332e-a3ec-478c-af4a-88136b961936 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3705fe49-50f9-41ba-8755-3c4b12bdb069
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "275e332e-a3ec-478c-af4a-88136b961936", "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/275e332e-a3ec-478c-af4a-88136b961936", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-88136b961936", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/275e332e-a3ec-478c-af4a-88136b961936/ports", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-88136b961936/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/275e332e-a3ec-478c-af4a-88136b961936/states", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-88136b961936/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/275e332e-a3ec-478c-af4a-88136b961936/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-88136b961936/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/275e332e-a3ec-478c-af4a-88136b961936/volume", "rel": "self"}, {"href": "http://localhost/nodes/275e332e-a3ec-478c-af4a-88136b961936/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': 'd6be8a50-e58a-4271-bb60-d8a990040cf6', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/d6be8a50-e58a-4271-bb60-d8a990040cf6
Openstack-Request-Id: req-4446452c-3d81-443e-a04e-1736e0e3f4ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openst
    ack-Ironic-Api-Version: 1.40
{"uuid": "d6be8a50-e58a-4271-bb60-d8a990040cf6", "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/d6be8a50-e58a-4271-bb60-d8a990040cf6", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/ports", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/states", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/volume", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/volume", "rel": "bookmark"}]}
GET /v1/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b4004180-5e69-4413-b3f0-039f6b51c819
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "d6be8a50-e58a-4271-bb60-d8a990040cf6", "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/d6be8a50-e58a-4271-bb60-d8a990040cf6", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/
    nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/ports", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/states", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/volume", "rel": "self"}, {"href": "http://localhost/nodes/d6be8a50-e58a-4271-bb60-d8a990040cf6/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': 'd33f4577-7384-4d75-9532-b68bb9466b9a', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/d33f4577-7384-4d75-9532-b68bb9466b9a
Openstack-Request-Id: req-17a82bdc-ca10-4f5d-b27c-b2b4e9a4d9bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "d33f4577-7384-4d75-9532-b68bb9466b9a", "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/d33f4577-7384-4d75-9532-b68bb9466b9a", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/ports", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/states", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/volume", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/volume", "rel": "bookmark"}]}
GET /v1/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6d86fb95-
    c865-4aac-b698-d13f7d0ae886
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "d33f4577-7384-4d75-9532-b68bb9466b9a", "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/d33f4577-7384-4d75-9532-b68bb9466b9a", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/ports", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/states", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/volume", "rel": "self"}, {"href": "http://localhost/nodes/d33f4577-7384-4d75-9532-b68bb9466b9a/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '1bd83643-fa5e-45d5-83ab-c3fd32a15043', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/1bd83643-fa5e-45d5-83ab-c3fd32a15043
Openstack-Request-Id: req-54a3d911-2f78-4113-ab17-5b93d2407453
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "1bd83643-fa5e-45d5-83ab-c3fd32a15043", "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/1bd83643-fa5e-45d5-83ab-c3fd32a15043", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/ports", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/states", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/volume", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/volume", "rel": "bookmark"}]}
GET /v1/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aa89f495-4bb1-4fc3-9d9c-62f57eab67a9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "1bd83643-fa5e-45d5-83ab-c3fd32a15043", "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/1bd83643-fa5e-45d5-83ab-c3fd32a15043", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/ports", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/states", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/volume", "rel": "self"}, {"href": "http://localhost/nodes/1bd83643-fa5e-45d5-83ab-c3fd32a15043/volume", "rel": "bookmark"}]}
POST /v1/nodes WIT
    H {'uuid': '950411fa-dc8a-4c45-9cf4-8bae1524bdc2', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/950411fa-dc8a-4c45-9cf4-8bae1524bdc2
Openstack-Request-Id: req-14cd2ee8-b5ac-4bdb-8e6b-d17e8b88fb81
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "950411fa-dc8a-4c45-9cf4-8bae1524bdc2", "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/950411fa-dc8a-4c45-9cf4-8bae1524bdc2", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/ports", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/states", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/volume", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/volume", "rel": "bookmark"}]}
GET /v1/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a5eae349-f744-4736-9f94-c72ddd9edd1a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "950411fa-dc8a-4c45-9cf4-8bae1524bdc2", "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/950411fa-dc8a-4c45-9cf4-8bae1524bdc2", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/ports", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/states", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/volume", "rel": "self"}, {"href": "http://localhost/nodes/950411fa-dc8a-4c45-9cf4-8bae1524bdc2/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '8d94e80c-c929-42c2-bb3c-1657f2783fc5', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/8d94e80c-c929-42c2-bb3c-1657f2783fc5
Openstack-Request-Id: req-21695023-0973-494a-8b88-2a553f109e24
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "8d94e80c-c929-42c2-bb3c-1657f2783fc5", "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/8d94e80c-c929-42c2-bb3c-1657f2783fc5", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/ports", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/ports",
     "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/states", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/volume", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/volume", "rel": "bookmark"}]}
GET /v1/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a849624e-70ae-4794-9c25-4df9bc746297
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "8d94e80c-c929-42c2-bb3c-1657f2783fc5", "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/8d94e80c-c929-42c2-bb3c-1657f2783fc5", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/ports", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/states", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/volume", "rel": "self"}, {"href": "http://localhost/nodes/8d94e80c-c929-42c2-bb3c-1657f2783fc5/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '30895bae-73d8-4a01-a7d1-d08f2206c660', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/30895bae-73d8-4a01-a7d1-d08f2206c660
Openstack-Request-Id: req-f8fd3626-6c38-47cc-a2f8-3969c94cce50
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Versi
    on: 1.40
{"uuid": "30895bae-73d8-4a01-a7d1-d08f2206c660", "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/30895bae-73d8-4a01-a7d1-d08f2206c660", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/ports", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/states", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/volume", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/volume", "rel": "bookmark"}]}
GET /v1/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4b274193-7cbf-454a-8c21-e4ba1c18ccac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "30895bae-73d8-4a01-a7d1-d08f2206c660", "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/30895bae-73d8-4a01-a7d1-d08f2206c660", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/30895bae-73d8-
    4a01-a7d1-d08f2206c660/ports", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/states", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/volume", "rel": "self"}, {"href": "http://localhost/nodes/30895bae-73d8-4a01-a7d1-d08f2206c660/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '37d2784c-4bf4-4223-b1c8-4a96dbb4e34d', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d
Openstack-Request-Id: req-77037880-ccf5-4164-9881-91b755b09f9d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "37d2784c-4bf4-4223-b1c8-4a96dbb4e34d", "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/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/ports", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/states", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/volume", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/volume", "rel": "bookmark"}]}
GET /v1/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1f4e4f49-6da5-4748-9b4a-bcd96
    aa6e0d5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "37d2784c-4bf4-4223-b1c8-4a96dbb4e34d", "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/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/ports", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/states", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/volume", "rel": "self"}, {"href": "http://localhost/nodes/37d2784c-4bf4-4223-b1c8-4a96dbb4e34d/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '91c1e8c1-ac79-4aaf-929f-17389719090e', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/91c1e8c1-ac79-4aaf-929f-17389719090e
Openstack-Request-Id: req-a1e55edd-fb47-48a8-8904-da1996cda2e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "91c1e8c1-ac79-4aaf-929f-17389719090e", "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/91c1e8c1-ac79-4aaf-929f-17389719090e", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/ports", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/states", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/volume", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/volume", "rel": "bookmark"}]}
GET /v1/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1b536d4c-72cd-480a-9358-47819ba7ce8c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "91c1e8c1-ac79-4aaf-929f-17389719090e", "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/91c1e8c1-ac79-4aaf-929f-17389719090e", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/ports", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/states", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/volume", "rel": "self"}, {"href": "http://localhost/nodes/91c1e8c1-ac79-4aaf-929f-17389719090e/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '37cb62ca-a4e
    7-4b01-8e27-ff5931169a39', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/37cb62ca-a4e7-4b01-8e27-ff5931169a39
Openstack-Request-Id: req-a2254399-e736-42f3-a976-529168325c36
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "37cb62ca-a4e7-4b01-8e27-ff5931169a39", "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/37cb62ca-a4e7-4b01-8e27-ff5931169a39", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/ports", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/states", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/volume", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/volume", "rel": "bookmark"}]}
GET /v1/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-baf607d0-ffb3-4f75-89d2-b398f985d68d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "37cb62ca-a4e7-4b01-8e27-ff5931169a39", "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/37cb62ca-a4e7-4b01-8e27-ff5931169a39", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/ports", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/states", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/volume", "rel": "self"}, {"href": "http://localhost/nodes/37cb62ca-a4e7-4b01-8e27-ff5931169a39/volume", "rel": "bookmark"}]}
POST /v1/nodes WITH {'uuid': '73cf8d68-b40c-4535-b644-e519f391d871', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/73cf8d68-b40c-4535-b644-e519f391d871
Openstack-Request-Id: req-d3d3ee4d-4c69-4123-b75d-14c976f43abe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "73cf8d68-b40c-4535-b644-e519f391d871", "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/73cf8d68-b40c-4535-b644-e519f391d871", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/73cf8d68-b40c-4535-b644-e519f391d871/ports", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871/ports", "rel": "bookmark"}], 
    "states": [{"href": "http://localhost/v1/nodes/73cf8d68-b40c-4535-b644-e519f391d871/states", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/73cf8d68-b40c-4535-b644-e519f391d871/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/73cf8d68-b40c-4535-b644-e519f391d871/volume", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871/volume", "rel": "bookmark"}]}
GET /v1/nodes/73cf8d68-b40c-4535-b644-e519f391d871 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-50982d2d-2f3c-4541-b6fe-1fc22e20da30
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "73cf8d68-b40c-4535-b644-e519f391d871", "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/73cf8d68-b40c-4535-b644-e519f391d871", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/73cf8d68-b40c-4535-b644-e519f391d871/ports", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/73cf8d68-b40c-4535-b644-e519f391d871/states", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/73cf8d68-b40c-4535-b644-e519f391d871/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/73cf8d68-b40c-4535-b644-e519f391d871/volume", "rel": "self"}, {"href": "http://localhost/nodes/73cf8d68-b40c-4535-b644-e519f391d871/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.129381s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0cc2d74f-fedc-4cd0-9276-03c2225f5b93
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "fc35e6f6-a86b-45db-8e14-acd9f4ac841e", "created_at": "2025-06-04T21:49:53.134433+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/fc35e6f6-a86b-45db-8e14-acd9f4ac841e", "rel": "self"}, {"href": "http://localhost/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e/ports", "rel": "self"}, {"href": "http://localhost/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e/states", "rel": "self"}, {"href": "http://localhost/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e/volume", "rel": "self"}, {"href": "http://localhost/nodes/fc35e6f6-a86b-45db-8e14-acd9f4ac841e/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password [0.160637s] ... 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-f97043a1-4b5d-4042-960a-e74b912ef553
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"driver_info": {"fake_password": "******"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.139480s] ... 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-155e0033-26d6-49fb-9e95-1a546f34865f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for port_ident: 52:54:00:cf:2d:31\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.074303s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/faa15efb-bb21-4cd8-b978-a797a2c4bde2 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-929e94f4-5d82-4ec1-9020-063f5e64acc2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"faa15efb-bb21-4cd8-b978-a797a2c4bde2\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis [0.174194s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-34a4d9a9-fb97-41c3-bf7d-3cae90960461
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:53.343056+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid [0.283369s] ... 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-545c9cd4-917f-47b4-8d8a-e1ad5fe749fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:53.363582+00:00", "updated_at": "2025-06-04T21:49:53.518855+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json_in_name [0.167702s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/node.json.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2927093-df6d-4f05-a531-6a46e9bb1a16
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:53.531010+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node.json.json", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.130895s] ... 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-35bb971c-4197-419d-a2b1-c881a886c192
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:53.645011+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version [0.596490s] ... 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-5532fc26-26e2-483c-a716-6af4064fe3e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-a4846210-6f36-4639-a991-37bef079f557
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-824ef5d5-6693-43e8-8d6d-3f4a226bea6a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-846deda3-009b-4408-828d-740f3cd582b3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'manageme
    nt_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-c946b568-13c7-4ed9-807b-941a53563873
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-6ba8257c-eb0f-4a4d-bbe1-0720ce5b99a4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-23c0391c-1afb-4836-8cad-b40e2383b1d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-cb4e53af-cf91-48ea-aa6b-69ff8c0307a4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed [0.236518s] ... 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-500e7154-de9c-4b36-8605-a6b122d2a7df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:53.614364+00:00", "updated_at": "2025-06-04T21:49:53.768495+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}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.105994s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/node.json WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5a12dd6a-f899-4f91-871c-61a8040dac44
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:53.783127+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node.json", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_not_found [0.074982s] ... 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-3e8a6a54-a1ab-45f5-afde-8d9e8065ccac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits [0.189440s] ... 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-a03d18ce-8914-4092-b031-efe843a361db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('traits' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed [0.146812s] ... 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-4943fde9-160b-4a38-a2ab-1fd04a47719b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret [0.088212s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1a45656f-e327-46da-a6d9-678809837518
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:53.951121+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"agent_secret_token": "******", "agent_secret_token_pregenerated": "******"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.098192s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/4c4d52a7-6763-4d85-b6bb-3292401a2990 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-dbe499b4-a23e-48bf-ac53-72ccdfcf3901
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 4c4d52a7-6763-4d85-b6bb-3292401a2990 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.163412s] ... 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-719ffe6c-c8d7-4374-93a5-0055640ab52f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix [0.130849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/test.1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ae28e445-f83b-4276-914d-07f572a92389
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:54.051860+00:00", "updated_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_port.TestPatch.test_update_port_address_normalized [0.191443s] ... 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-55648132-a332-4b4d-9985-0a4d9494e9d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:54.100441+00:00", "updated_at": "2025-06-04T21:49:54.204967+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.106730s] ... 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-0b5c84a4-fe4d-4db5-82f1-028ce37cb3f0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"owner": "fred", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields [0.106546s] ... 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-2e5fb910-af42-4bc3-9410-529f74e43dd5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"protected": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info [0.284465s] ... 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-61e63868-fcab-44eb-9774-84cac10683f7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:54.287542+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-0ee9ef55-6e29-4948-9cb0-97360b8abd3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:54.287542+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed [0.173296s] ... 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-a21c95d6-3d84-4c7d-906b-7f47a66201fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:49:54.284530+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields [0.096634s] ... 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-10afb901-32b9-486e-b955-45c25680e3bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"retired": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version [0.089358s] ... 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-8fb4409c-ceb9-4e28-8031-1b0559f01542
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.090443s] ... 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-63ca84ac-fa54-4603-9cde-32024f441485
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"storage_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection [0.053924s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection_conductor_groups [0.045152s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.086184s] ... 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-5979aeed-5589-4906-bfd9-490c54df509d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [1.355881s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bf514268-212e-4e02-a83e-0502e9536b5b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9dc010a5-91b0-402c-a04f-879f26ae994d", "created_at": "2025-06-04T21:49:53.891694+00:00", "updated_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/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-51f7dbb8-21ee-4a72-ba0a-cb3653d922c9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9dc010a5-91b0-402c-a04f-879f26ae994d", "created_at": "2025-06-04T21:49:53.891694+00:00", "updated_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/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d68a327a-5203-489e-9fb3-15c959c14149
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9dc010a5-91b0-402c-a04f-879f26ae994d", "created_at": "2025-06-04T21:49:53.891694+00:00", "updated_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/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "s
    elf"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-315e8418-87e6-4ac6-801f-14b5dce6a424
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9dc010a5-91b0-402c-a04f-879f26ae994d", "created_at": "2025-06-04T21:49:53.891694+00:00", "updated_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/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/
    9dc010a5-91b0-402c-a04f-879f26ae994d WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1a6d563f-6a36-4654-8b4e-ab152ee34659
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9dc010a5-91b0-402c-a04f-879f26ae994d", "created_at": "2025-06-04T21:49:53.891694+00:00", "updated_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/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a2d77fc-4c18-40f5-a470-8b566ee61972
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9dc010a5-91b0-402c-a04f-879f26ae994d", "created_at": "2025-06-04T21:49:53.891694+00:00", "updated_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/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-20a7baa6-ed9d-405e-b6fc-870da7af4f3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9dc010a5-91b0-402c-a04f-879f26ae994d", "created_at": "2025-06-04T21:49:53.891694+00:00", "updated_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/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "self"}, {"href"
    : "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "bookmark"}]}
PATCH /v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bc6d81a4-57dd-4ddf-a4a2-79ccf2db886a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9dc010a5-91b0-402c-a04f-879f26ae994d", "created_at": "2025-06-04T21:49:53.891694+00:00", "updated_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/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "self"}, {"href": "http://localhost/nodes/9dc010a5-91b0-402c-a04f-879f26ae994d/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress [0.091885s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/52:54:00:cf:2d:31 GOT Response: 400 Bad Request
Content-Type: application/json
{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.320335s] ... 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-9f16d440-804f-41c1-a724-a07ca843273f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:54.584150+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-5505547b-4077-4fb5-a233-ae4fbe5f715a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:54.584150+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.107374s] ... 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-7eabaee4-fdac-4a24-a1ec-89f25669b3c3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"supported_boot_devices": ["pxe"]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid [0.119958s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 204 No Content
Openstack-Request-Id: req-c2ca075e-3ef2-477e-b991-e2d271f70d96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name [0.093829s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/spam/management/boot_device/supported WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a90fbaa5-f01c-44e2-bfe0-3a966ec5e567
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"supported_boot_devices": ["pxe"]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.099913s] ... 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-ab5b05ce-0904-4910-b5ce-f16c3787c3fb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.257512s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/e2f02294-fa8b-4dc4-9cc7-b83984675939 WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-44ac78ab-64ba-4424-9991-ec5d296bd3b2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/e2f02294-fa8b-4dc4-9cc7-b83984675939 WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-aeea4fc2-e1ad-42ab-963c-e1c3943eddc0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/e2f02294-fa8b-4dc4-9cc7-b83984675939 WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-66a0dd4a-6f69-4ab2-9f53-cd7c4d99cfba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/e2f02294-fa8b-4dc4-9cc7-b83984675939 WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-378a923b-1be9-49c6-ba30-62641510e035
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/e2f02294-fa8b-4dc4-9cc7-b83984675939 WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-7ef45d8c-a9e7-4134-b9c0-a699327bd358
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/e2f02294-fa8b-4dc4-9cc7-b83984675939 WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-76117832-a8e1-4898-bc40-5b617a966829
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/e2f02294-fa8b-4dc4-9cc7-b83984675939 WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-94faca86-d41f-4f6b-a869-913d9cb4b127
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/nodes/e2f02294-fa8b-4dc4-9cc7-b83984675939 WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-4dd64e47-07b2-4a56-a05a-2fa8e152f370
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.118163s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/pg.1 GOT Response: 204 No Content
Openstack-Request-Id: req-32c1c2c6-c1a2-4bfc-9ef5-ed3e89c80b13
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.248832s] ... 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-7ce7ba88-9123-4bc3-84be-392791da17e6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:54.858417+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-2c8d8818-657d-4713-b866-eac03399185a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:54.858417+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators [0.097212s] ... 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-9c6ec57b-ae3a-4557-a43f-870c439fe690
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.091133s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-02de933f-9aca-41a5-a778-c70571e9064b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported [0.114425s] ... 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-97bc787d-2488-468a-b204-89d2784e333f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee [0.220560s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/299e13fa-8790-4a38-a6f0-9188863f9017 WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-50151a09-9b18-4043-a85c-ab2abed4ba5b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "299e13fa-8790-4a38-a6f0-9188863f9017", "created_at": "2025-06-04T21:49:55.017072+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/299e13fa-8790-4a38-a6f0-9188863f9017", "rel": "self"}, {"href": "http://localhost/nodes/299e13fa-8790-4a38-a6f0-9188863f9017", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/299e13fa-8790-4a38-a6f0-9188863f9017/ports", "rel": "self"}, {"href": "http://localhost/nodes/299e13fa-8790-4a38-a6f0-9188863f9017/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/299e13fa-8790-4a38-a6f0-9188863f9017/states", "rel": "self"}, {"href": "http://localhost/nodes/299e13fa-8790-4a38-a6f0-9188863f9017/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/299e13fa-8790-4a38-a6f0-9188863f9017/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/299e13fa-8790-4a38-a6f0-9188863f9017/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/299e13fa-8790-4a38-a6f0-9188863f9017/volume", "rel": "self"}, {"href": "http://localhost/nodes/299e13fa-8790-4a38-a6f0-9188863f9017/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.129730s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/pg.1.json GOT Response: 204 No Content
Openstack-Request-Id: req-3d50eb13-d7c0-4266-aca8-86d43e735523
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.290685s] ... 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-3f32b220-ed8b-45e3-94d8-a0b63248b836
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:55.148090+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-b1bf64c0-a4aa-4185-9ede-7c1628b1716a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:55.148090+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning [0.138309s] ... 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-e24dc673-bee5-4c40-839b-d4390f6c36d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api [0.125716s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/43242c48-9f77-4714-a214-0eb68286dca4 WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-8978d759-5234-4bd2-8367-cd97735d11e1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.124790s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields [0.100184s] ... 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-3a861f6d-bce2-4132-a79a-8350f50f470b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"traits": [], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked [0.118489s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-bc36044c-f8c4-40e1-8560-97907adbaefd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.084834s] ... 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-4625fe16-5aba-49f2-addc-641d09331d09
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_conductor_group [0.288101s] ... 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-a47ba658-490e-4db2-8377-783fee655d7b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:55.435936+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-42e9f676-d9ee-47e0-b70c-46fe417a6294
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:55.435936+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links [0.144752s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ec2fb6d2-4a60-44f7-99ba-63fe1afc821d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6b9f53cd-356c-4fe6-b1af-74abf453d1ab", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/6b9f53cd-356c-4fe6-b1af-74abf453d1ab", "rel": "self"}, {"href": "http://localhost/portgroups/6b9f53cd-356c-4fe6-b1af-74abf453d1ab", "rel": "bookmark"}]}, {"uuid": "c9fea561-3b1a-4350-bdc5-c68105f2591c", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/c9fea561-3b1a-4350-bdc5-c68105f2591c", "rel": "self"}, {"href": "http://localhost/portgroups/c9fea561-3b1a-4350-bdc5-c68105f2591c", "rel": "bookmark"}]}, {"uuid": "d21b185b-9d92-4638-a31b-6e7aa15d5580", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/d21b185b-9d92-4638-a31b-6e7aa15d5580", "rel": "self"}, {"href": "http://localhost/portgroups/d21b185b-9d92-4638-a31b-6e7aa15d5580", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=d21b185b-9d92-4638-a31b-6e7aa15d5580"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation [0.126568s] ... 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-fa7790d2-78a1-408c-86eb-71b63d13fb7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "allocation_uuid": "ab2c5d24-f8af-4460-a67f-edd3044f3486"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data [0.311812s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/99559e05-4d2c-4f07-892f-b46b3a57c501 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-bcb5e39e-60df-44da-9a14-f86dff14561d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "99559e05-4d2c-4f07-892f-b46b3a57c501", "created_at": "2025-06-04T21:49:55.364069+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/99559e05-4d2c-4f07-892f-b46b3a57c501", "rel": "self"}, {"href": "http://localhost/nodes/99559e05-4d2c-4f07-892f-b46b3a57c501", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/99559e05-4d2c-4f07-892f-b46b3a57c501/ports", "rel": "self"}, {"href": "http://localhost/nodes/99559e05-4d2c-4f07-892f-b46b3a57c501/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/99559e05-4d2c-4f07-892f
    -b46b3a57c501/states", "rel": "self"}, {"href": "http://localhost/nodes/99559e05-4d2c-4f07-892f-b46b3a57c501/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/99559e05-4d2c-4f07-892f-b46b3a57c501/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/99559e05-4d2c-4f07-892f-b46b3a57c501/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/99559e05-4d2c-4f07-892f-b46b3a57c501/volume", "rel": "self"}, {"href": "http://localhost/nodes/99559e05-4d2c-4f07-892f-b46b3a57c501/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields [0.127089s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?fields=address,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0f4a7121-c843-403c-ba2e-07e9730672bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "4bb2de4b-19b1-48eb-b834-9d668142e247", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/4bb2de4b-19b1-48eb-b834-9d668142e247", "rel": "self"}, {"href": "http://localhost/portgroups/4bb2de4b-19b1-48eb-b834-9d668142e247", "rel": "bookmark"}]}, {"uuid": "b5079dea-838a-4ebf-a712-b53dd679795f", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/b5079dea-838a-4ebf-a712-b53dd679795f", "rel": "self"}, {"href": "http://localhost/portgroups/b5079dea-838a-4ebf-a712-b53dd679795f", "rel": "bookmark"}]}, {"uuid": "fa0cb218-b8bb-4c4a-9da9-9cad157449bd", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/portgroups/fa0cb218-b8bb-4c4a-9da9-9cad157449bd", "rel": "self"}, {"href": "http://localhost/portgroups/fa0cb218-b8bb-4c4a-9da9-9cad157449bd", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=fa0cb218-b8bb-4c4a-9da9-9cad157449bd"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom [0.176107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d574fae7-9b93-4e65-92ca-547f176c1a9a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "d50a4e0b-8b84-485e-b00c-0e533d3e17f3", "created_at": "2025-06-04T21:49:55.680054+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/d50a4e0b-8b84-485e-b00c-0e533d3e17f3", "rel": "self"}, {"href": "http://localhost/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3/ports", "rel": "self"}, {"href": "http://localhost/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3/states", "rel": "self"}, {"href": "http://localhost/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3/volume", "rel": "self"}, {"href": "http://localhost/nodes/d50a4e0b-8b84-485e-b00c-0e533d3e17f3/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class [0.288137s] ... 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-836dd5ee-8e99-4689-b66c-2e5f207999ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:55.725572+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-7d94ec28-8cb2-4a9d-832d-3ace9aee090b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:55.725572+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": "class1", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api [0.112225s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/e4fc80d3-fdd8-4164-bdf3-92e66364ae7f 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-bf5e17de-7bea-4ccb-8857-46ffc586eae1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.62
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit [0.226380s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f445809f-0e7f-4414-baee-ea6f33629d52
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "0b104d9c-5920-40c6-9047-8100cf3bb212", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/0b104d9c-5920-40c6-9047-8100cf3bb212", "rel": "self"}, {"href": "http://localhost/portgroups/0b104d9c-5920-40c6-9047-8100cf3bb212", "rel": "bookmark"}]}, {"uuid": "2e39f118-33b5-48b8-89e5-17a8d27f6090", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/2e39f118-33b5-48b8-89e5-17a8d27f6090", "rel": "self"}, {"href": "http://localhost/portgroups/2e39f118-33b5-48b8-89e5-17a8d27f6090", "rel": "bookmark"}]}, {"uuid": "07a3e312-9420-413c-9674-6ee03771f96f", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/07a3e312-9420-413c-9674-6ee03771f96f", "rel": "self"}, {"href": "http://localhost/portgroups/07a3e312-9420-413c-9674-6ee03771f96f", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=07a3e312-9420-413c-9674-6ee03771f96f"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field [0.136442s] ... 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-72f70a7e-4f65-45e7-8a79-60e4a9d91721
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('reservation' was unexpected)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format [0.134383s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ad9839f2-9b68-48d3-a2ad-e47204c5a875 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-727542e3-2a9f-4fa7-a4c8-fd6b69ee4fd6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid network_data: 'links' is a required property \", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.099179s] ... 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-44d3c687-3854-4b93-a75c-7195e5daf685
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail [0.147614s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ab81745b-83f0-4754-bdf5-4683f741b39c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:49:55.977669+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource [0.143059s] ... 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-dc2b2b3c-86a6-4e27-a462-f032dd7ecbbb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single [0.130999s] ... 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-60f8416b-56ff-48d0-aef2-bf93c8413ea2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface [0.309844s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ff5f2083-497a-412e-8653-0fbaba6411f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1e211c75-c13b-481c-8db8-26cd6d5b9dbb", "created_at": "2025-06-04T21:49:56.136963+00:00", "updated_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/1e211c75-c13b-481c-8db8-26cd6d5b9dbb", "rel": "self"}, {"href": "http://localhost/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb/ports", "rel": "self"}, {"href": "http://localhost/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb/states", "rel": "self"}, {"href": "http://localhost/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb/volume", "rel": "self"}, {"href": "http://localhost/nodes/1e211c75-c13b-481c-8db8-26cd6d5b9dbb/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.154312s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f89d12ba-f675-403d-814f-c5af86f93a3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:49:56.277697+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.786920s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7c5553e5-a293-46ac-9817-ab8f5b9e8a80
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.286895+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-f3c5b319-192c-4348-9023-73cd63e3fd69
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.7
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.286895+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_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.110759s] ... 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.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.136664s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/b3bb5363-19e4-4835-9428-ca825788dea3 WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f42cd582-0d43-448a-a4e1-bea43a71ea7b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.138409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e4c4c487-f3c2-4324-9c82-e371cb1312d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.447214+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-172eb91c-3103-4aea-9731-ecf9704fb9b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.447214+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "useful piece", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, 
    "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.175850s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-25f9ec81-203a-4812-929d-585786247472
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:49:56.574312+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.153150s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9578655b-6ca4-47fd-acfc-83cf1e8bb408
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.588549+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-a9712bb5-12a2-4cc6-ae3e-8d9d01980833
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.3
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.588549+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"foo": "bar"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.107115s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-313406bb-23d7-44ea-a90f-a371726a710d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.721464+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-e406868b-201c-4325-8459-2789fc021635
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.6
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.721464+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.TestPatch.test_update_ok [0.312755s] ... 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-32abfbfc-ecfb-486d-aff3-05e79edbb4b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.525847+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.204572s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3163f1df-ab3d-42d4-9825-32995076fe15
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
GET /v1/portgroups?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7d912045-c3d3-43cd-b891-548b51966ea6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.114965s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d7afe87b-7902-44f0-951d-980509024df8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.828384+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-59d3a74f-a6b9-4d65-b901-4e304d2e01a6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.31
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.828384+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": 
    "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id [0.837852s] ... 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\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.175055s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b3d46d08-3827-4147-a7cb-5d4814837af2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "df4d3889-79d2-4949-b54a-eff08326955b", "created_at": "2025-06-04T21:49:56.972768+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/df4d3889-79d2-4949-b54a-eff08326955b", "rel": "self"}, {"href": "http://localhost/portgroups/df4d3889-79d2-4949-b54a-eff08326955b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/df4d3889-79d2-4949-b54a-eff08326955b/ports", "rel": "self"}, {"href": "http://localhost/portgroups/df4d3889-79d2-4949-b54a-eff08326955b/ports", "rel": "bookmark"}]}, {"uuid": "7ebd463b-8903-4abe-8c84-a0e595f066d1", "created_at": "2025-06-04T21:49:56.959662+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/7ebd463b-8903-4abe-8c84-a0e595f066d1", "rel": "self"}, {"href": "http://localhost/portgroups/7ebd463b-8903-4abe-8c84-a0e595f066d1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/7ebd463b-8903-4abe-8c84-a0e595f066d1/ports", "rel": "self"}, {"href": "http://localhost/portgroups/7ebd463b-8903-4abe-8c84-a0e595f066d1/ports", "rel": "bookmark"}]}, {"uuid": "89eb56f0-c15c-4a1c-a6b4-164f2f6c1e82", "created_at": "2025-06-04T21:49:56.941316+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/89eb56f0-c15c-4a1c-a6b4-164f2f6c1e82", "rel": "self"}, {"href": "http://localhost/portgroups/89eb56f0-c15c-4a1c-a6b4-164f2f6c1e82", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/89eb56f0-c15c-4a1c-a6b4-164f2f6c1e82/ports", "rel": "self"}, {"href": "http://localhost/portgroups/89eb56f0-c15c-4a1c-a6b4-164f2f6c1e82/ports", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.255879s] ... 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-f21799c3-02d4-459d-b84c-3d31e6f1a54a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.851064+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name [0.190907s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f06902cc-0376-4382-81b1-ee2ca47d90bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.984511+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-18ee62b7-999a-4c8d-80c1-51c976e6b891
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:56.984511+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource [0.103398s] ... 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-9bbcb96a-8fb0-4aa3-861a-daf2599b4153
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.101172s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-bda3928f-d732-40e4-b3ef-7a6580ed3550
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.084231s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.170610s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1ca4c73b-dc7a-4dc3-8890-aff8b14fac76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.171966+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-2f836c28-5e04-41bf-84de-7c85475facfc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.171966+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "flat", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.140535s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4f57c04b-ce5a-4567-97b3-e233b5f7b003
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.268969s] ... 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-a3c19991-d025-447c-b12c-5421ffbf543b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.111425+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.102885s] ... 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-ffa71297-3f6c-4482-9fe4-184e89c0d2a9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async [0.083167s] ... 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-a82fb4d0-d1a9-43fc-8983-7bd016b527c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields [0.157819s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=False&fields=internal_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-59289de4-32ba-4387-8fe7-acd40b6f1e0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.205408s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-663e7303-1103-4060-879a-4055b4197680
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.353235+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-5340b41c-f9b6-4367-8131-db812cb366ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.353235+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"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name [0.097674s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes/node-109/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 202 Accepted
Openstack-Request-Id: req-66bdb6f0-de01-4803-99d4-953e925332ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.221621s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/1097d820-299d-46ff-a401-d2580fc59b2f WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-48fb86c6-8fe1-4b55-b5e5-9096de63482c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1097d820-299d-46ff-a401-d2580fc59b2f", "created_at": "2025-06-04T21:49:57.413257+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/1097d820-299d-46ff-a401-d2580fc59b2f", "rel": "self"}, {"href": "http://localhost/nodes/1097d820-299d-46ff-a401-d2580fc59b2f", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1097d820-299d-46ff-a401-d2580fc59b2f/ports", "rel": "self"}, {"href": "http://localhost/nodes/1097d820-299d-46ff-a401-d2580fc59b2f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1097d820-299d-46ff-a401-d2580fc59b2f/states", "rel": "self"}, {"href": "http://localhost/nodes/1097d820-299d-46ff-a401-d2580fc59b2f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1097d820-299d-46ff-a401-d2580fc59b2f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1097d820-299d-46ff-a401-d2580fc59b2f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1097d820-299d-46ff-a401-d2580fc59b2f/volume", "rel": "self"}, {"href": "http://localhost/nodes/1097d820-299d-46ff-a401-d2580fc59b2f/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.091563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT Response: 202 Accepted
Openstack-Request-Id: req-6d93c3c7-09e5-4207-a41e-194f53f2216d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.158738s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d0eff34b-79c6-4b3e-b96c-526c37265d82
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get [0.088154s] ... 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-bd74d229-948d-47b3-b7be-d27710de47c2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
"foo"
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.215480s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2bc2324b-7894-4cd0-97fa-8754eba6f0a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.585708+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-7047d1c2-2876-41bc-bc84-2449c33e9a4d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.585708+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"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.130687s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-591f057c-4afc-47fb-93f9-d388dc55a7fb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": []}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation [0.249033s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-93245860-c08a-4353-9d2f-ae9cabbaacae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f", "created_at": "2025-06-04T21:49:57.651942+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/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f", "rel": "self"}, {"href": "http://localhost/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f/ports", "rel": "self"}, {"href": "http://localhost/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f/states", "rel": "self"}, {"href": "http://localhost/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f/volume", "rel": "self"}, {"href": "http://localhost/nodes/57c0ef27-1bbf-4e62-a1ee-8c8bd620f39f/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods [0.123907s] ... 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-a57d9c8c-abf1-4df0-adff-312b535c3b7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"foo": "bar"}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a9dc12fb-4a93-42fb-81e6-50a9aa837a4a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"foo": "bar"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.201153s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-84a1399a-aad7-4329-8756-011fd3d0f7d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.770732+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-d1c6d2bd-68a2-464d-89ca-185310405883
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.770732+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["CUSTOM_1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c
    02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.102809s] ... 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-ba326ff8-2d83-49da-a381-7c39d889ce89
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned [0.158642s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/e2d55593-ca94-4a04-87ce-1f49d3bf4cfd WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-dc46e3a0-0c74-41b6-b7fb-e3a03681a6ec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"e2d55593-ca94-4a04-87ce-1f49d3bf4cfd\\\" while it is allocated to an allocation with an  owner.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_conductor_groups [0.261584s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?conductor_groups=group_a,group_b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-af7fe301-7ec4-4045-9f66-4cad8bd6c54f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "f6f12d74-ffa4-473e-a572-ad53282e8b05", "address": "52:54:00:cf:2d:30", "name": "foo-0", "links": [{"href": "http://localhost/v1/portgroups/f6f12d74-ffa4-473e-a572-ad53282e8b05", "rel": "self"}, {"href": "http://localhost/portgroups/f6f12d74-ffa4-473e-a572-ad53282e8b05", "rel": "bookmark"}]}, {"uuid": "aca957bd-2ca6-47db-bcc7-1fc93975c434", "address": "52:54:00:cf:2d:31", "name": "foo-1", "links": [{"href": "http://localhost/v1/portgroups/aca957bd-2ca6-47db-bcc7-1fc93975c434", "rel": "self"}, {"href": "http://localhost/portgroups/aca957bd-2ca6-47db-bcc7-1fc93975c434", "rel": "bookmark"}]}, {"uuid": "517bbeb1-aa08-4d54-b0f3-0b7e45c70822", "address": "52:54:00:cf:2d:33", "name": "foo-3", "links": [{"href": "http://localhost/v1/portgroups/517bbeb1-aa08-4d54-b0f3-0b7e45c70822", "rel": "self"}, {"href": "http://localhost/portgroups/517bbeb1-aa08-4d54-b0f3-0b7e45c70822", "rel": "bookmark"}]}, {"uuid": "de84a5f9-4455-4f14-973f-9f6a3d57c392", "address": "52:54:00:cf:2d:34", "name": "foo-4", "links": [{"href": "http://localhost/v1/portgroups/de84a5f9-4455-4f14-973f-9f6a3d57c392", "rel": "self"}, {"href": "http://localhost/portgroups/de84a5f9-4455-4f14-973f-9f6a3d57c392", "rel": "bookmark"}]}, {"uuid": "f74cb8bb-4301-41cc-bae0-4d903919624e", "address": "52:54:00:cf:2d:35", "name": "foo-5", "links": [{"href": "http://localhost/v1/portgroups/f74cb8bb-4301-41cc-bae0-4d903919624e", "rel": "self"}, {"href": "http://localhost/portgroups/f74cb8bb-4301-41cc-bae0-4d903919624e", "rel": "bookmark"}]}]}
GET /v1/portgroups?conductor_groups=group_b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-09e51c70-768a-4aa0-aafd-0aed52178c57
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "517bbeb1-aa08-4d54-b0f3-0b7e45c70822", "address": "52:54:00:cf:2d:33", "name": "foo-3", "links": [{"href": "http://localhost/v1/portgroups/517bbeb1-aa08-4d54-b0f3-0b7e45c70822", "rel": "self"}, {"href": "http://localhost/portgroups/517bbeb1-aa08-4d54-b0f3-0b7e45c70822", "rel": "bookmark"}]}, {"uuid": "de84a5f9-4455-4f14-973f-9f6a3d57c392", "address": "52:54:00:cf:2d:34", "name": "foo-4", "links": [{"href": "http://localhost/v1/portgroups/de84a5f9-4455-4f14-973f-9f6a3d57c392", "rel": "self"}, {"href": "http://localhost/portgroups/de84a5f9-4455-4f14-973f-9f6a3d57c392", "rel": "bookmark"}]}, {"uuid": "f74cb8bb-4301-41cc-bae0-4d903919624e", "address": "52:54:00:cf:2d:35", "name": "foo-5", "links": [{"href": "http://localhost/v1/portgroups/f74cb8bb-4301-41cc-bae0-4d903919624e", "rel": "self"}, {"href": "http://localhost/portgroups/f74cb8bb-4301-41cc-bae0-4d903919624e", "rel": "bookmark"}]}]}
GET /v1/portgroups?conductor_groups=no_such_group WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-54a21909-4ad1-4a77-8812-336056c1b293
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.107099s] ... 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-c8461323-0350-4043-8f14-89ad7351547d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.120276s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/c8dd0797-3457-4865-89cd-4c8e36f5bbe5 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-7be1f8a6-0910-4fb6-a069-c63179bbc9de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.176479s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-61e7895b-b680-440f-bb33-8db4e4654f3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.31
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.991933+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-ef717476-81d2-49f8-82ff-a1b98b8604fb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:49:57.991933+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync [0.119233s] ... 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-c91d0160-2468-42a7-894e-4397c0314574
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"cat": "meow"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.199082s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f29add3a-b2d4-4f79-9709-aec099618dbd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "ceb60844-d590-4ef8-8c94-5cbeb9945774", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/ceb60844-d590-4ef8-8c94-5cbeb9945774", "rel": "self"}, {"href": "http://localhost/portgroups/ceb60844-d590-4ef8-8c94-5cbeb9945774", "rel": "bookmark"}]}, {"uuid": "ac0e828c-2a7b-42d2-9eb8-8f1e215bbfcf", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/ac0e828c-2a7b-42d2-9eb8-8f1e215bbfcf", "rel": "self"}, {"href": "http://localhost/portgroups/ac0e828c-2a7b-42d2-9eb8-8f1e215bbfcf", "rel": "bookmark"}]}, {"uuid": "1f6f9d70-a19f-4655-8ca6-ea1a46b0fef5", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/1f6f9d70-a19f-4655-8ca6-ea1a46b0fef5", "rel": "self"}, {"href": "http://localhost/portgroups/1f6f9d70-a19f-4655-8ca6-ea1a46b0fef5", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.086649s] ... 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-71128a11-cc49-491c-a12c-e68ea37bae27
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.214108s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0e131eb2-305d-406e-878a-89dd4913102f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b2c93447-a7fc-49e1-b5e7-c0db41b1c894", "created_at": "2025-06-04T21:49:58.162827+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/b2c93447-a7fc-49e1-b5e7-c0db41b1c894", "rel": "self"}, {"href": "http://localhost/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894/ports", "rel": "self"}, {"href": "http://localhost/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894/ports", "rel": "bookmark"}]}
GET /v1/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-95b845bc-0586-400c-a748-5267fcc271fb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b2c93447-a7fc-49e1-b5e7-c0db41b1c894", "created_at": "2025-06-04T21:49:58.162827+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/b2c93447-a7fc-49e1-b5e7-c0db41b1c894", "rel": "self"}, {"href": "http://localhost/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894/ports", "rel": "self"}, {"href": "http://localhost/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894/ports", "rel": "bookmark"}]}
GET /nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9d3d668d-de6c-4574-bc84-106e6f5f3056
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "b2c93447-a7fc-49e1-b5e7-c0db41b1c894", "created_at": "2025-06-04T21:49:58.162827+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/b2c93447-a7fc-49e1-b5e7-c0db41b1c894", "rel": "self"}, {"href": "http://localhost/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894/ports", "rel": "self"}, {"href": "http://localhost/nodes/b2c93447-a7fc-49e1-b5e7-c0db41b1c894/ports", "rel
    ": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned [0.234003s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-35d9f3e4-2cbd-4ace-990a-926303434fe4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "24245c89-7bb7-4462-bf99-9cea5e0d25a2", "created_at": "2025-06-04T21:49:58.149519+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/24245c89-7bb7-4462-bf99-9cea5e0d25a2", "rel": "self"}, {"href": "http://localhost/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2/ports", "rel": "self"}, {"href": "http://localhost/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2/states", "rel": "self"}, {"href": "http://localhost/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2/volume", "rel": "self"}, {"href": "http://localhost/nodes/24245c89-7bb7-4462-bf99-9cea5e0d25a2/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanhold [0.166197s] ... 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-b68d06be-26d4-4f5f-ba10-59332a199b95
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden [0.138395s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/0454ccb6-9bc7-4a07-b8ac-66a34741067b WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-ba8923b0-0be7-48d1-8c53-5cde2ff78b88
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"0454ccb6-9bc7-4a07-b8ac-66a34741067b\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url [0.247484s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-87a25e99-98ac-43a6-b5b3-224c6cf7c433
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "345cab2c-90c8-4e39-9c7e-8d51ad2ed63d", "created_at": "2025-06-04T21:49:58.377031+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/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d", "rel": "self"}, {"href": "http://foo/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d/ports", "rel": "self"}, {"href": "http://foo/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d/ports", "rel": "bookmark"}]}
GET /v1/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-95f1cad9-10e1-41e7-bef7-2a38a8d412df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "345cab2c-90c8-4e39-9c7e-8d51ad2ed63d", "created_at": "2025-06-04T21:49:58.377031+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/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d", "rel": "self"}, {"href": "http://foo/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d/ports", "rel": "self"}, {"href": "http://foo/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d/ports", "rel": "bookmark"}]}
GET /nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e6685e2-9e95-49b5-aa62-f4e7a66f8965
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "345cab2c-90c8-4e39-9c7e-8d51ad2ed63d", "created_at": "2025-06-04T21:49:58.377031+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/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d", "rel": "self"}, {"href": "http://foo/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d/ports", "rel": "self"}, {"href": "http://foo/nodes/345cab2c-90c8-4e39-9c7e-8d51ad2ed63d/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.146347s] ... 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-3b246a6b-deea-4ddb-bbcc-7c229befed68
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.13
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.216287s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/fff81296-fab2-4b03-8257-134c478eb97a WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-523954ce-a3d3-48cf-9afb-53713268269d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "fff81296-fab2-4b03-8257-134c478eb97a", "created_at": "2025-06-04T21:49:58.535501+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/fff81296-fab2-4b03-8257-134c478eb97a", "rel": "self"}, {"href": "http://localhost/nodes/fff81296-fab2-4b03-8257-134c478eb97a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fff81296-fab2-4b03-8257-134c478eb97a/ports", "rel": "self"}, {"href": "http://localhost/nodes/fff81296-fab2-4b03-8257-134c478eb97a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fff81296-fab2-4b03-8257-134c478eb97a/states", "rel": "self"}, {"href": "http://localhost/nodes/fff81296-fab2-4b03-8257-134c478eb97a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fff81296-fab2-4b03-8257-134c478eb97a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fff81296-fab2-4b03-8257-134c478eb97a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fff81296-fab2-4b03-8257-134c478eb97a/volume", "rel": "self"}, {"href": "http://localhost/nodes/fff81296-fab2-4b03-8257-134c478eb97a/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_deployhold [0.133621s] ... 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-84c973bb-eaaa-4ddc-97be-d3b828deafce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.121806s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/0bc0a42a-b7d9-48f7-adf0-692e71218db6 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-32f233f1-3cad-4db5-823d-5ef60607df6f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [0.239203s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?maintenance=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8afe6fd7-693d-468e-a7ff-d9084354743f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "09e8640a-5712-4b9d-b6d1-97e1885a7812", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/09e8640a-5712-4b9d-b6d1-97e1885a7812", "rel": "self"}, {"href": "http://localhost/nodes/09e8640a-5712-4b9d-b6d1-97e1885a7812", "rel": "bookmark"}]}, {"uuid": "cffae52e-9e42-4981-abc6-07b88e44dde0", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/cffae52e-9e42-4981-abc6-07b88e44dde0", "rel": "self"}, {"href": "http://localhost/nodes/cffae52e-9e42-4981-abc6-07b88e44dde0", "rel": "bookmark"}]}]}
GET /v1/nodes?maintenance=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-45e88c17-2743-4499-9b00-bb0f629f611e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "ff93acc9-e293-4591-9d6a-8ca9eb0dffab", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ff93acc9-e293-4591-9d6a-8ca9eb0dffab", "rel": "self"}, {"href": "http://localhost/nodes/ff93acc9-e293-4591-9d6a-8ca9eb0dffab", "rel": "bookmark"}]}, {"uuid": "0428e254-af27-40ff-bc4e-2bdf81429152", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0428e254-af27-40ff-bc4e-2bdf81429152", "rel": "self"}, {"href": "http://localhost/nodes/0428e254-af27-40ff-bc4e-2bdf81429152", "rel": "bookmark"}]}, {"uuid": "ffa32edd-4bfd-4e39-82c9-fd33f1129e73", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ffa32edd-4bfd-4e39-82c9-fd33f1129e73", "rel": "self"}, {"href": "http://localhost/nodes/ffa32edd-4bfd-4e39-82c9-fd33f1129e73", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.127979s] ... 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-6eb7ffbd-ee0a-4630-a9d4-d4577679d2df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.13
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"abort\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.114981s] ... 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-e87d9bf4-04dd-4ac7-8e8a-8ccaa9883535
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"adopt\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.202088s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686 WITH [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6fad35a0-122c-4834-9e03-fe9c06554a18
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "5d4cb0c2-b7b1-4322-a7c6-574acf342686", "created_at": "2025-06-04T21:49:58.853386+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/5d4cb0c2-b7b1-4322-a7c6-574acf342686", "rel": "self"}, {"href": "http://localhost/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686/states", "rel": "self"}, {"href": "http://localhost/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d4cb0c2-b7b1-4322-a7c6-574acf342686/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated [0.306219s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=true&maintenance=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fce78c97-15cd-4542-aecd-c51eb2e441f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "2a04afa8-ff76-46ff-9e08-e764a3ad6562", "instance_uuid": "2dbe6ce1-a20f-4d85-a960-aead13dcd440", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2a04afa8-ff76-46ff-9e08-e764a3ad6562", "rel": "self"}, {"href": "http://localhost/nodes/2a04afa8-ff76-46ff-9e08-e764a3ad6562", "rel": "bookmark"}]}, {"uuid": "63bb6cdf-6827-4552-a403-71daeb2bc964", "instance_uuid": "82daf3f5-eed0-4ad2-984d-edce31bfcd85", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/63bb6cdf-6827-4552-a403-71daeb2bc964", "rel": "self"}, {"href": "http://localhost/nodes/63bb6cdf-6827-4552-a403-71daeb2bc964", "rel": "bookmark"}]}, {"uuid": "de71ff9d-1ed1-4f58-be71-df1041da34de", "instance_uuid": "2a05abd0-c821-4e75-835c-acc79631fd0f", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/de71ff9d-1ed1-4f58-be71-df1041da34de", "rel": "self"}, {"href": "http://localhost/nodes/de71ff9d-1ed1-4f58-be71-df1041da34de", "rel": "bookmark"}]}, {"uuid": "d4b2f76c-de6b-4b00-a10c-5ebac07041fd", "instance_uuid": "c79e4574-e814-4904-8c3e-60431952f4ca", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d4b2f76c-de6b-4b00-a10c-5ebac07041fd", "rel": "self"}, {"href": "http://localhost/nodes/d4b2f76c-de6b-4b00-a10c-5ebac07041fd", "rel": "bookmark"}]}]}
GET /v1/nodes?associated=true&maintenance=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-74a62157-4540-4b7a-a245-6d6e8c945a7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "5e75352e-ace2-46ca-b1f8-9ff37132700d", "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-488f99e2-9589-47df-93f6-537ed582e49c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "5e75352e-ace2-46ca-b1f8-9ff37132700d", "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"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.175912s] ... 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-2ab1f6dc-54bb-460c-a4c2-0af2d0ac6c2d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove [0.215043s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd WITH [{'op': 'remove', 'path': '/protected'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-265bc0bf-eed0-4258-867d-d6900d042229
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "f8e368f0-0144-4712-9178-fc0baffa98fd", "created_at": "2025-06-04T21:49:59.087583+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/f8e368f0-0144-4712-9178-fc0baffa98fd", "rel": "self"}, {"href": "http://localhost/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd/ports", "rel": "self"}, {"href": "http://localhost/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd/states", "rel": "self"}, {"href": "http://localhost/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd/volume", "rel": "self"}, {"href": "http://localhost/nodes/f8e368f0-0144-4712-9178-fc0baffa98fd/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.141517s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=true&maintenance=blah WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ab2e6081-f6e3-4670-b6d3-4f05f7c4928b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid maintenance: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [1.075115s] ... 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-b34e3529-76ad-462b-8681-b4ca194da7ab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:49:59.211880+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.182560s] ... 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-0a745ffd-c209-4f55-9f6e-8e7a30ce876c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string [0.202800s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/eced4f46-e135-4e52-8801-0be77333046e WITH [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c28e5208-c48a-4ffa-a379-8064ff3e885c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "eced4f46-e135-4e52-8801-0be77333046e", "created_at": "2025-06-04T21:49:59.280076+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/eced4f46-e135-4e52-8801-0be77333046e", "rel": "self"}, {"href": "http://localhost/nodes/eced4f46-e135-4e52-8801-0be77333046e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/eced4f46-e135-4e52-8801-0be77333046e/ports", "rel": "self"}, {"href": "http://localhost/nodes/eced4f46-e135-4e52-8801-0be77333046e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/eced4f46-e135-4e52-8801-0be77333046e/states", "rel": "self"}, {"href": "http://localhost/nodes/eced4f46-e135-4e52-8801-0be77333046e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/eced4f46-e135-4e52-8801-0be77333046e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/eced4f46-e135-4e52-8801-0be77333046e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/eced4f46-e135-4e52-8801-0be77333046e/volume", "rel": "self"}, {"href": "http://localhost/nodes/eced4f46-e135-4e52-8801-0be77333046e/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many [0.178378s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-da659279-068c-47cd-b482-3a18b5a87180
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "0e92af99-4045-4326-bcc9-b00a77b74c06", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0e92af99-4045-4326-bcc9-b00a77b74c06", "rel": "self"}, {"href": "http://localhost/nodes/0e92af99-4045-4326-bcc9-b00a77b74c06", "rel": "bookmark"}]}, {"uuid": "6848f745-1aad-46d8-a3a8-ef2790141567", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/6848f745-1aad-46d8-a3a8-ef2790141567", "rel": "self"}, {"href": "http://localhost/nodes/6848f745-1aad-46d8-a3a8-ef2790141567", "rel": "bookmark"}]}, {"uuid": "d555f1a1-093e-4e53-b824-12eef7dbe7ce", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d555f1a1-093e-4e53-b824-12eef7dbe7ce", "rel": "self"}, {"href": "http://localhost/nodes/d555f1a1-093e-4e53-b824-12eef7dbe7ce", "rel": "bookmark"}]}, {"uuid": "c53d51a1-790f-472f-8cd9-ee9e2b1d08e9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/c53d51a1-790f-472f-8cd9-ee9e2b1d08e9", "rel": "self"}, {"href": "http://localhost/nodes/c53d51a1-790f-472f-8cd9-ee9e2b1d08e9", "rel": "bookmark"}]}, {"uuid": "0fbb23f3-fe29-48de-a2ef-9d0f325a5c47", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0fbb23f3-fe29-48de-a2ef-9d0f325a5c47", "rel": "self"}, {"href": "http://localhost/nodes/0fbb23f3-fe29-48de-a2ef-9d0f325a5c47", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.126185s] ... 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-1a86c1a9-7065-49e0-baab-61aa75d43895
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.16
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.194468s] ... 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-15b4ae2c-dc3c-4078-a0ab-25a114ba5525
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden [0.113776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7f2b8bf7-ad33-4857-9b19-d03e48abe5e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid [0.206517s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/6d937f7e-1d9f-41fa-8d1f-00147eb02ee0 WITH [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-70db3ada-c409-492e-aa5f-e75123bb2d0c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid protected: Unrecognized value 'YeahNahGood', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.196799s] ... 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-e3813219-e200-46ac-ba74-fa2306239285
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4ed7dd12-2fac-41aa-9a57-eb77d50f0732
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-55afd9c7-4a32-4bc3-84fb-c323c3a5aca2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.187947s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b8837afc-1560-4210-bc2d-88d152e4e1da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "32bb7598-ff5c-488c-838d-b4f72997f3e9", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/32bb7598-ff5c-488c-838d-b4f72997f3e9", "rel": "self"}, {"href": "http://localhost/portgroups/32bb7598-ff5c-488c-838d-b4f72997f3e9", "rel": "bookmark"}]}, {"uuid": "7a291d8e-ced6-4075-96f3-b66385e60264", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/7a291d8e-ced6-4075-96f3-b66385e60264", "rel": "self"}, {"href": "http://localhost/portgroups/7a291d8e-ced6-4075-96f3-b66385e60264", "rel": "bookmark"}]}, {"uuid": "95fc3081-ce8d-4d7c-8ea4-a9fbe65aa056", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/95fc3081-ce8d-4d7c-8ea4-a9fbe65aa056", "rel": "self"}, {"href": "http://localhost/portgroups/95fc3081-ce8d-4d7c-8ea4-a9fbe65aa056", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.224940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2c112b9-f902-410e-abae-57fe7969e653
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"nodes": [{"uuid": "2577c2c2-e77f-4c3e-be97-30bdcf44e415", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-0", "links": [{"href": "http://localhost/v1/nodes/2577c2c2-e77f-4c3e-be97-30bdcf44e415", "rel": "self"}, {"href": "http://localhost/nodes/2577c2c2-e77f-4c3e-be97-30bdcf44e415", "rel": "bookmark"}]}, {"uuid": "36bc7483-fe7b-4982-9b00-ccb400ead61d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-1", "links": [{"href": "http://localhost/v1/nodes/36bc7483-fe7b-4982-9b00-ccb400ead61d", "rel": "self"}, {"href": "http://localhost/nodes/36bc7483-fe7b-4982-9b00-ccb400ead61d", "rel": "bookmark"}]}, {"uuid": "c470e70c-5989-48df-8f17-8a3f2f50fa61", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-2", "links": [{"href": "http://localhost/v1/nodes/c470e70c-5989-48df-8f17-8a3f2f50fa61", "rel": "self"}, {"href": "http://localhost/nodes/c470e70c-5989-48df-8f17-8a3f2f50fa61", "rel": "bookmark"}]}, {"uuid": "5a8551a3-58eb-4300-a96d-1e88423eefbd", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-3", "links": [{"href": "http://localhost/v1/nodes/5a8551a3-58eb-4300-a96d-1e88423eefbd", "rel": "self"}, {"href": "http://localhost/nodes/5a8551a3-58eb-4300-a96d-1e88423eefbd", "rel": "bookmark"}]}, {"uuid": "1c37336c-6ae7-4482-be10-7ccfbbab5b0b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-4", "links": [{"href": "http://localhost/v1/nodes/1c37336c-6ae7-4482-be10-7ccfbbab5b0b", "rel": "self"}, {"href": "http://localhost/nodes/1c37336c-6ae7-4482-be10-7ccfbbab5b0b", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.158443s] ... 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-c98259ad-6a59-436e-af16-9863939303b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-15cbc542-2187-4b00-9d79-cddf960f206b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-958edd91-d2ed-411a-a038-80bc37c65e03
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.241886s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d 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-bc5d24c8-2e89-4994-aff7-1a39203feb09
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "a553c96f-e2cf-4997-99dc-a732dd0d8d3d", "created_at": "2025-06-04T21:49:59.717462+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/a553c96f-e2cf-4997-99dc-a732dd0d8d3d", "rel": "self"}, {"href": "http://localhost/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d/ports", "rel": "self"}, {"href": "http://localhost/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d/states", "rel": "self"}, {"href": "http://localhost/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d/volume", "rel": "self"}, {"href": "http://localhost/nodes/a553c96f-e2cf-4997-99dc-a732dd0d8d3d/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.214481s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?fields=address&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3ef345e4-d9ca-4d16-8ae9-9a70219680b3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/39467e15-1525-4221-97fb-cbaa643e6f52", "rel": "self"}, {"href": "http://localhost/portgroups/39467e15-1525-4221-97fb-cbaa643e6f52", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/273979a2-d0ac-4fa5-9508-a3145cc95786", "rel": "self"}, {"href": "http://localhost/portgroups/273979a2-d0ac-4fa5-9508-a3145cc95786", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=273979a2-d0ac-4fa5-9508-a3145cc95786"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch [0.134116s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?project=54321 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2e2949af-cce3-4252-9b00-797c2a3f5622
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.166113s] ... 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-c309185f-5b30-4a62-8515-09ea47d9a0c3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-f03a3484-71a9-4b59-8658-a72045e9ed96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b0716119-012d-4a3e-ad75-6dc8c7dd2527
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.151108s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/?fields=address,properties WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-44b22cd2-5009-40d1-ae4f-4a5d1f6f73f6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver [0.105472s] ... 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-e480f2c1-09e4-4c93-94ac-78f1d4d915de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.217942s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/85f9e96b-a597-4423-b752-89afe4b2971a WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-40d1de00-52b5-4d30-9c9f-ee1977c17788
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "85f9e96b-a597-4423-b752-89afe4b2971a", "created_at": "2025-06-04T21:49:59.950483+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/85f9e96b-a597-4423-b752-89afe4b2971a", "rel": "self"}, {"href": "http://localhost/nodes/85f9e96b-a597-4423-b752-89afe4b2971a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/85f9e96b-a597-4423-b752-89afe4b2971a/ports", "rel": "self"}, {"href": "http://localhost/nodes/85f9e96b-a597-4423-b752-89afe4b2971a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/85f9e96b-a597-4423-b752-89afe4b2971a/states", "rel": "self"}, {"href": "http://localhost/nodes/85f9e96b-a597-4423-b752-89afe4b2971a/states", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden [0.196855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-89eec702-eaec-4906-a1be-b3b470d67f66
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"nodes": [{"uuid": "8f940a74-6467-42bf-ab77-829e4014a514", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/8f940a74-6467-42bf-ab77-829e4014a514", "rel": "self"}, {"href": "http://localhost/nodes/8f940a74-6467-42bf-ab77-829e4014a514", "rel": "bookmark"}]}, {"uuid": "cc79c935-dc62-40af-b7e0-3d41a47a2a81", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cc79c935-dc62-40af-b7e0-3d41a47a2a81", "rel": "self"}, {"href": "http://localhost/nodes/cc79c935-dc62-40af-b7e0-3d41a47a2a81", "rel": "bookmark"}]}, {"uuid": "265352d7-dbce-4a32-806a-4b0ac55a7c9a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/265352d7-dbce-4a32-806a-4b0ac55a7c9a", "rel": "self"}, {"href": "http://localhost/nodes/265352d7-dbce-4a32-806a-4b0ac55a7c9a", "rel": "bookmark"}]}, {"uuid": "5800d6c4-9dab-4959-8fbb-9136360e83b3", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/5800d6c4-9dab-4959-8fbb-9136360e83b3", "rel": "self"}, {"href": "http://localhost/nodes/5800d6c4-9dab-4959-8fbb-9136360e83b3", "rel": "bookmark"}]}, {"uuid": "de955615-e2fe-4e2f-ae5b-af110ed7c1a4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/de955615-e2fe-4e2f-ae5b-af110ed7c1a4", "rel": "self"}, {"href": "http://localhost/nodes/de955615-e2fe-4e2f-ae5b-af110ed7c1a4", "rel": "bookmark"}]}, {"uuid": "4d584cd5-986d-4d71-8eda-e0773e91782d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/4d584cd5-986d-4d71-8eda-e0773e91782d", "rel": "self"}, {"href": "http://localhost/nodes/4d584cd5-986d-4d71-8eda-e0773e91782d", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project [0.064745s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4a83ae81-7bf4-476b-85f8-c4d840abbacd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.148787s] ... 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-6b735282-9e74-4242-8631-554128596bec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver [0.129561s] ... 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-8036f68e-c346-403b-9d39-26a6153c1ac3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.204841s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/41598727-2b6b-4dc3-a949-f1336f947b58 WITH [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-51d33637-4b3e-4090-9b6f-49d9f29050b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"uuid": "41598727-2b6b-4dc3-a949-f1336f947b58", "created_at": "2025-06-04T21:50:00.158764+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/41598727-2b6b-4dc3-a949-f1336f947b58", "rel": "self"}, {"href": "http://localhost/nodes/41598727-2b6b-4dc3-a949-f1336f947b58", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/41598727-2b6b-4dc3-a949-f1336f947b58/ports", "rel": "self"}, {"href": "http://localhost/nodes/41598727-2b6b-4dc3-a949-f1336f947b58/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/41598727-2b6b-4dc3-a949-f1336f947b58/states", "rel": "self"}, {"href": "http://localhost/nodes/41598727-2b6b-4dc3-a949-f1336f947b58/states", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.132181s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-80d66e14-40df-43fc-af73-1d073b1f44c8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:00.230391+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-0cb49b65-3131-4116-81d3-4993c94819f2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.2
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:00.230391+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one [0.113713s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fa3573f0-8042-4b68-8755-587c54e55b5d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:00.252842+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request [0.116792s] ... 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-4762cb5f-8029-44f5-ba08-3b6fef3f4514
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid boot mode unsupported-efi requested for node. Allowed boot modes are: bios, uefi\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.110881s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/?limit=3&associated=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b735d1e8-2e9d-41f2-ba0b-4cc4903ec105
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "9365cce5-078a-47e2-9ddb-e23e4e777003", "instance_uuid": "4f734d5c-fa83-4de2-97df-801f1cacc1c0", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9365cce5-078a-47e2-9ddb-e23e4e777003", "rel": "self"}, {"href": "http://localhost/nodes/9365cce5-078a-47e2-9ddb-e23e4e777003", "rel": "bookmark"}]}, {"uuid": "a37f1da4-f2ae-41b0-be68-da4bc5b0f190", "instance_uuid": "1fda10cf-202d-4ce4-a710-c9839f7ef628", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/a37f1da4-f2ae-41b0-be68-da4bc5b0f190", "rel": "self"}, {"href": "http://localhost/nodes/a37f1da4-f2ae-41b0-be68-da4bc5b0f190", "rel": "bookmark"}]}, {"uuid": "d8bb4e09-5a30-44d2-855b-9ef6eb9c8df5", "instance_uuid": "22a586d9-1179-41d9-820a-7592ddfb217e", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d8bb4e09-5a30-44d2-855b-9ef6eb9c8df5", "rel": "self"}, {"href": "http://localhost/nodes/d8bb4e09-5a30-44d2-855b-9ef6eb9c8df5", "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=d8bb4e09-5a30-44d2-855b-9ef6eb9c8df5"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.133219s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/5d37760f-f652-420f-96c5-3e2b1f669513 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-066b916b-da81-4df4-bac3-d6fe1ec5b0d5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver [0.113540s] ... 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-58831bcd-f082-49ef-b283-a055d1b39f37
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.146251s] ... 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-ce211810-3a73-46ab-8d23-f812a17944c3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"address": "52:54:00:cf:2d:31", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.137040s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail?limit=3&associated=true WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c8f50b09-8da5-49dd-bc28-6b972d4db7e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "2101c070-0ecd-4237-a673-41108041f3dd", "created_at": "2025-06-04T21:50:00.458666+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": "3da7b430-9611-4e18-9b2a-160af28e2060", "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/2101c070-0ecd-4237-a673-41108041f3dd", "rel": "self"}, {"href": "http://localhost/nodes/2101c070-0ecd-4237-a673-41108041f3dd", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2101c070-0ecd-4237-a673-41108041f3dd/ports", "rel": "self"}, {"href": "http://localhost/nodes/2101c070-0ecd-4237-a673-41108041f3dd/ports", "rel": "bookmark"}]}, {"uuid": "1f2a91b5-be59-4d59-8176-deba1d9e6a43", "created_at": "2025-06-04T21:50:00.460210+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": "28ad981c-741b-493d-b123-48de005d9c93", "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/1f2a91b5-be59-4d59-8176-deba1d9e6a43", "rel": "self"}, {"href": "http://localhost/nodes/1f2a91b5-be59-4d59-8176-deba1d9e6a43", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1f2a91b5-be59-4d59-8176-deba1d9e6a43/ports", "rel": "self"}, {"href": "http://localhost/nodes/1f2a91b5-be59-4d59-8176-deba1d9e6a43/ports", "rel": "bookmark"}]}, {"uuid": "ab98fe4f-1430-49db-b440-868b493db0e3", "created_at": "2025-06-04T21:50:00.482231+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": "1e9e3764-19a6-4bcf-9ba0-0340b2316eb4", "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/ab98fe4f-1430-49db-b440-868b493db0e3", "rel": "self"}, {"href": "http://localhost/nodes/ab98fe4f-1430-49db-b440-868b493db0e3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ab98fe4f-1430-49db-b440-868b493db0e3/ports", "rel": "self"}, {"href": "http://localhost/nodes/ab98fe4f-1430-49db-b440-868b493db0e3/ports", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=ab98fe4f-1430-49db-b440-868b493db0e3"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver [0.101241s] ... 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-bfa5b354-918b-4dea-a00f-696735791d92
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.098817s] ... 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.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.201606s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/416236a9-1c39-457a-90a1-beb3ffe39218 WITH [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b30ca2ec-8334-4bb4-af70-ffc8dc5f0132
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.112396s] ... 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-1ea679bc-07ee-4554-b92e-a55e3e7d9a3f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.133772s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-35634321-d123-4a15-8cd3-adbfc5aff7dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:00.604613+00:00", "updated_at": null, "automated_clean": false, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.137056s] ... 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-becfad0b-a1a3-41b4-aa51-fb0bde5ef325
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_double_json_in_name [0.116584s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-46f2b1e6-6c2d-45a1-a769-5c72f989ce19
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:00.729942+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.135573s] ... 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-8d54be7e-9112-4f02-a9a7-5e4a0d88e4a6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.157533s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-de3d3558-0147-476c-b27f-1753575d369d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:00.771621+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-1f8c977d-95c1-4c57-8a7d-2a846c041f39
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:00.771621+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "targe
    t_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired [0.226553s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb0f2e1c-2551-4757-b9c0-db815e1e8399
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "b6b4e53b-0d5f-46dd-a65d-3e8429629705", "created_at": "2025-06-04T21:50:00.700842+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/b6b4e53b-0d5f-46dd-a65d-3e8429629705", "rel": "self"}, {"href": "http://localhost/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705/ports", "rel": "self"}, {"href": "http://localhost/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705/states", "rel": "self"}, {"href": "http://localhost/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705/volume", "rel": "self"}, {"href": "http://localhost/nodes/b6b4e53b-0d5f-46dd-a65d-3e8429629705/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.107940s] ... 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-559f3e5c-aa1e-44f4-820e-82a456995539
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:00.845191+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.105179s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b8b16612-c872-4487-8293-5447a371c430
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:00.886633+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk [0.158145s] ... 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-b4c877db-6db3-41f3-85d6-da23d258d5ff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.70
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api [0.146803s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/93ab0dd4-dd95-4eb5-b907-9e4b6cbbaaa6 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-beffab60-8aab-45c0-bde1-6f0e8f587244
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.137765s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8d9c99f1-2e79-43e4-bc7a-0eb9e017926d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:00.966828+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api [0.104511s] ... 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-274527f4-dc87-4921-9872-719c3b9b71be
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.69
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"disable_ramdisk is not acceptable in this API version\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.148851s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f44b5c05-f202-4fd7-b043-9a953e2f12f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:01.021155+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_not_found [0.105160s] ... 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-ad32bb78-cbf1-4164-a2c5-3de148f11623
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4.json could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps [0.077086s] ... 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-ecd9ea8d-cb50-41fd-9dfe-0cd494d478e1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is required when setting target provision state to clean\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version [0.126234s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cfff44a7-2c2c-40b1-9f25-01004eee3df3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:01.142612+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-e859ac1b-19b6-4cf0-90b7-29774ffd4161
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:01.142612+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nod
    es/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason [0.253337s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d WITH [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7d88d506-7b43-42a5-8fea-b9cfe33ba2fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "91e4917e-34d9-47bf-8624-6fe6a17f460d", "created_at": "2025-06-04T21:50:01.090963+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/91e4917e-34d9-47bf-8624-6fe6a17f460d", "rel": "self"}, {"href": "http://localhost/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d/ports", "rel": "self"}, {"href": "http://localhost/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d/states", "rel": "self"}, {"href": "http://localhost/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d/volume", "rel": "self"}, {"href": "http://localhost/nodes/91e4917e-34d9-47bf-8624-6fe6a17f460d/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks [0.097517s] ... 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-08dedf8b-5038-4683-ba94-b4ec394ac9a7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode [0.107198s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3bb969de-3f01-45f5-ae42-52b66a616952
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "bf9525bf-c84c-4d01-a220-185c6cd0f27f", "created_at": "2025-06-04T21:50:01.267073+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/bf9525bf-c84c-4d01-a220-185c6cd0f27f", "rel": "self"}, {"href": "http://localhost/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f/ports", "rel": "self"}, {"href": "http://localhost/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f/states", "rel": "self"}, {"href": "http://localhost/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f/volume", "rel": "self"}, {"href": "http://localhost/nodes/bf9525bf-c84c-4d01-a220-185c6cd0f27f/volume", "rel": "bookmark"}]}
GET /v1/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cd7f1d00-f46b-4bef-a6b1-876a9232a7e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "8f0416c0-6000-4b9b-b784-bc97c4860324", "created_at": "2025-06-04T21:50:01.287313+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/8f0416c0-6000-4b9b-b784-bc97c4860324", "rel": "self"}, {"href": "http://localhost/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324/ports", "rel": "self"}, {"href": "http://localhost/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324/states", "rel": "self"}, {"href": "http://localhost/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324/volume", "rel": "self"}, {"href": "http://localhost/nodes/8f0416c0-6000-4b9b-b784-bc97c4860324/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix [0.189932s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-74b2b0af-3567-419e-bcd8-ff5f8412431a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:01.252952+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version [0.117624s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-57f524c8-eb5f-48c5-b52a-28e4162a40d5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:01.393045+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-b73a988a-bd43-4826-984d-55a809769ecf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:01.393045+00:00", "updated_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.TestPatch.test_update_retired_remove [0.243039s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484 WITH [{'op': 'remove', 'path': '/retired'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7d0a7874-6b0a-45cd-80d1-2da83650d1e3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "ca6c1944-edd6-4083-bce6-63d7d4350484", "created_at": "2025-06-04T21:50:01.360001+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/ca6c1944-edd6-4083-bce6-63d7d4350484", "rel": "self"}, {"href": "http://localhost/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484/states", "rel": "self"}, {"href": "http://localhost/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca6c1944-edd6-4083-bce6-63d7d4350484/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field [0.091930s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-83fff07d-952b-40ca-b22b-704ada5fb175
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:01.494632+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.258787s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-015224bb-85cf-40aa-a8c3-e6edfd6e7bc3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "396f357b-e7b3-4340-855a-53b74ef949ec", "created_at": "2025-06-04T21:50:01.427500+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/396f357b-e7b3-4340-855a-53b74ef949ec", "rel": "self"}, {"href": "http://localhost/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec/ports", "rel": "self"}, {"href": "http://localhost/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec/ports", "rel": "bookmark"}]}
GET /v1/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4186e82f-f1bc-4ac6-a037-aa0e2d5e1faa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "396f357b-e7b3-4340-855a-53b74ef949ec", "created_at": "2025-06-04T21:50:01.427500+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/396f357b-e7b3-4340-855a-53b74ef949ec", "rel": "self"}, {"href": "http://localhost/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec/ports", "rel": "self"}, {"href": "http://localhost/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec/ports", "rel": "bookmark"}]}
GET /portgroups/396f357b-e7b3-4340-855a-53b74ef949ec WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-620e41ce-b897-41ca-827d-30fbfe9597f9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "396f357b-e7b3-4340-855a-53b74ef949ec", "created_at": "2025-06-04T21:50:01.427500+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/396f357b-e7b3-4340-855a-53b74ef949ec", "rel": "self"}, {"href": "http://localhost/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec/ports", "rel": "self"}, {"href": "http://localhost/portgroups/396f357b-e7b3-4340-855a-53b74ef949ec/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.105768s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=7afe065d-349d-497f-b292-5cc579e4d9f8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-89947dc2-4160-49e7-b7d2-a9d086be9de3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"nodes": [{"uuid": "990cdddf-9a2a-4b66-999c-fa15f8174f79", "instance_uuid": "7afe065d-349d-497f-b292-5cc579e4d9f8", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/990cdddf-9a2a-4b66-999c-fa15f8174f79", "rel": "self"}, {"href": "http://localhost/nodes/990cdddf-9a2a-4b66-999c-fa15f8174f79", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks_unapproved [0.415419s] ... 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-674d8d06-a9b8-4360-b605-a1df00674e81
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This runbook has not been approved for use on this node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Please ask an administrator to add it to your node traits.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.101109s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=fake WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1baac6e0-6d54-4ca9-a8de-299e5ad1c393
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for instance_uuid: fake\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi [0.076539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 204 No Content
Openstack-Request-Id: req-871d9c8f-66e5-4907-bb04-8392366ecd62
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.222354s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ed9c9f36-7566-417b-9efe-f2ecf285d80f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "fa17baef-7dd0-4817-ac15-5425297951c0", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/fa17baef-7dd0-4817-ac15-5425297951c0", "rel": "self"}, {"href": "http://localhost/portgroups/fa17baef-7dd0-4817-ac15-5425297951c0", "rel": "bookmark"}]}, {"uuid": "bb573ce1-1911-4346-ac77-4acf741a20ac", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/bb573ce1-1911-4346-ac77-4acf741a20ac", "rel": "self"}, {"href": "http://localhost/portgroups/bb573ce1-1911-4346-ac77-4acf741a20ac", "rel": "bookmark"}]}, {"uuid": "2d35d074-03ae-4241-82ef-01e1a0839fce", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/2d35d074-03ae-4241-82ef-01e1a0839fce", "rel": "self"}, {"href": "http://localhost/portgroups/2d35d074-03ae-4241-82ef-01e1a0839fce", "rel": "bookmark"}]}, {"uuid": "f45e488b-2715-4cf2-a4ce-ff873edb4efd", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/f45e488b-2715-4cf2-a4ce-ff873edb4efd", "rel": "self"}, {"href": "http://localhost/portgroups/f45e488b-2715-4cf2-a4ce-ff873edb4efd", "rel": "bookmark"}]}, {"uuid": "a8b24507-ff62-4a45-ae7e-4aa45dba0310", "address": "52:54:00:cf:2d:34", "name": "portgroup4", "links": [{"href": "http://localhost/v1/portgroups/a8b24507-ff62-4a45-ae7e-4aa45dba0310", "rel": "self"}, {"href": "http://localhost/portgroups/a8b24507-ff62-4a45-ae7e-4aa45dba0310", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed [0.096324s] ... 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-1dff925a-058c-4817-ac15-069b7e5813b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.28
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.132711s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?instance_uuid=7a8aa83d-9837-403b-9009-2e162081568d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-167d429b-737a-4576-820d-fad760059949
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.082519s] ... 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-3062c32d-b6fd-4a19-bcf5-a0fd0d019981
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.29
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.132873s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9679bcd5-8e2b-4aac-99be-355892828e2b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:01.944202+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-eb7d0266-3bd5-4008-968d-612f5e5dda93
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.46
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:01.944202+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": 
    null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.204821s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e981bea4-4560-42d9-8986-5015dfeceab7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.068387s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-096d070a-a6c6-4809-a9b6-aa0ceca05b62
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:02.047368+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-aa4a7078-b123-46e7-b2ff-eef2f797385d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:02.047368+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.147286s] ... 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-8d397e27-81a9-4c65-901c-46437f2cf8be
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.064746s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-991efde0-dd27-4903-9057-a7795be836de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.43
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:02.104745+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-f1a136fe-0eac-42d6-883e-bf1241a15dde
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.44
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:02.104745+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_node.TestPut.test_inspect_abort_raises_before_1_41 [0.121557s] ... 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-30a328db-1e03-4726-a7e7-7907d11f8f2d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.40
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.240276s] ... 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-f05b9f32-aa34-43da-86e8-adb55aa88790
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "58270f8b-0281-4495-ac5e-410bdfe923ec", "address": "aa:bb:cc:dd:ee:f1", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/58270f8b-0281-4495-ac5e-410bdfe923ec", "rel": "self"}, {"href": "http://localhost/portgroups/58270f8b-0281-4495-ac5e-410bdfe923ec", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.129635s] ... 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-89963392-e0d1-4402-81f6-fb1767946bbd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason [0.888008s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e 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-ff598ca0-cd15-46e8-b78e-2ebfe649a8e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "b15f563c-9094-4d2c-821c-7fe16d1adf6e", "created_at": "2025-06-04T21:50:02.248157+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/b15f563c-9094-4d2c-821c-7fe16d1adf6e", "rel": "self"}, {"href": "http://localhost/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e/ports", "rel": "self"}, {"href": "http://localhost/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e/states", "rel": "self"}, {"href": "http://localhost/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e/volume", "rel": "self"}, {"href": "http://localhost/nodes/b15f563c-9094-4d2c-821c-7fe16d1adf6e/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.135279s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6c971e70-f709-4229-9d9b-a346fc156a3d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.124758s] ... 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-f0621f51-a3ce-4bab-a3ec-61b28d44a267
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: Additional properties are not allowed ('power_state' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.149429s] ... 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-2e18f02a-3f93-4201-a892-9bed58c5bc64
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.6
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.123181s] ... 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-77687d44-dcf9-42ef-9c75-c334e933d083
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code [0.122513s] ... 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-a6024329-71fd-44c3-87cc-fb55a728dd96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.6
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.131919s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-962d2c21-912a-4dab-9864-2af70821d93b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.191370s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-030304c8-c778-4171-9920-8e619b9f5440
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b561c571-3e10-4585-aa81-5edd1ba4e77b", "created_at": "2025-06-04T21:50:02.611228+00:00", "updated_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/b561c571-3e10-4585-aa81-5edd1ba4e77b", "rel": "self"}, {"href": "http://localhost/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b/ports", "rel": "self"}, {"href": "http://localhost/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b/states", "rel": "self"}, {"href": "http://localhost/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b/volume", "rel": "self"}, {"href": "http://localhost/nodes/b561c571-3e10-4585-aa81-5edd1ba4e77b/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.060354s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/bd616160-54c5-4e07-842b-2dfaafc6b041 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f4bcaa40-c8da-45ee-a89a-156b79d8e18c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.132219s] ... 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-da5a7b93-6aa3-4381-8df8-27ae72c18e06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.17
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits [0.058516s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/nodes/cd9ad5af-3da8-453a-9a30-44e648ce986b WITH [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-eaa9c1d1-db20-4108-bc06-f44a4e3de7f7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /traits. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field [0.703692s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c2a21b99-529b-4c8d-86be-679a2f6bd994
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.51
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:02.792801+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.126580s] ... 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-b6e97950-06b1-4c0e-86d8-85ef8917fda7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_false_field [0.094577s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-48882584-9af4-4173-98ea-4dcda39d5472
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:02.893991+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.152381s] ... 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-50ec76e3-8477-4bb8-8d20-296bc0e67805
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.45
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:02.845247+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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.052414s] ... 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-16711ef0-f60f-4bc6-bb59-78abd7919fb3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_hidden_in_lower_version [0.102463s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eb590c2e-be1f-4c02-94a4-5bab28900797
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.94
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:02.991224+00:00", "updated_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-3039ce0f-9ad4-46a0-a6d5-4e3f83ed1f5b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:02.991224+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error"
    : null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource [0.429680s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/1f059fc0-fb17-4c1e-afab-9f4bcf320b39/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e3b381e2-e01e-4a85-a950-b922c68e6001
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "448a8686-1ab9-4485-aa1d-2b309bff32d8", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/448a8686-1ab9-4485-aa1d-2b309bff32d8", "rel": "self"}, {"href": "http://localhost/ports/448a8686-1ab9-4485-aa1d-2b309bff32d8", "rel": "bookmark"}]}, {"uuid": "f1ad071d-3143-4d29-b4a3-decbff6a6ec9", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/f1ad071d-3143-4d29-b4a3-decbff6a6ec9", "rel": "self"}, {"href": "http://localhost/ports/f1ad071d-3143-4d29-b4a3-decbff6a6ec9", "rel": "bookmark"}]}]}
GET /v1/portgroups/1f059fc0-fb17-4c1e-afab-9f4bcf320b39/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e473f41e-8c7f-45fc-aee8-a39d75a387be
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "448a8686-1ab9-4485-aa1d-2b309bff32d8", "created_at": "2025-06-04T21:50:02.762973+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/448a8686-1ab9-4485-aa1d-2b309bff32d8", "rel": "self"}, {"href": "http://localhost/ports/448a8686-1ab9-4485-aa1d-2b309bff32d8", "rel": "bookmark"}], "portgroup_uuid": "1f059fc0-fb17-4c1e-afab-9f4bcf320b39"}, {"uuid": "f1ad071d-3143-4d29-b4a3-decbff6a6ec9", "created_at": "2025-06-04T21:50:02.784389+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/f1ad071d-3143-4d29-b4a3-decbff6a6ec9", "rel": "self"}, {"href": "http://localhost/ports/f1ad071d-3143-4d29-b4a3-decbff6a6ec9", "rel": "bookmark"}], "portgroup_uuid": "1f059fc0-fb17-4c1e-afab-9f4bcf320b39"}]}
GET /v1/portgroups/1f059fc0-fb17-4c1e-afab-9f4bcf320b39/ports?limit=1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7497cb9f-0b7a-472c-949a-f31b79db924f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "448a8686-1ab9-4485-aa1d-2b309bff32d8", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/448a8686-1ab9-4485-aa1d-2b309bff32d8", "rel": "self"}, {"href": "http://localhost/ports/448a8686-1ab9-4485-aa1d-2b309bff32d8", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=448a8686-1ab9-4485-aa1d-2b309bff32d8"}
GET /v1/portgroups/1f059fc0-fb17-4c1e-afab-9f4bcf320b39/ports/4fbcaf67-bbac-4fe6-84c2-e7ccd688afeb WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
GET /v1/portgroups/1f059fc0-fb17-4c1e-afab-9f4bcf320b39/ports/e0b60b6a-3731-4f7a-bf22-7efeb9bb27f8 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3396cacb-0c34-4441-903b-cd0ad8971935
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debug
    info\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned [0.173569s] ... 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-6c4dddb9-9804-4f5e-8b33-9dc841422cff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power off'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-01306786-4be9-4ab4-9f8b-84cf815df3c2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"clean wait\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.082813s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-377aaf56-4ceb-44c0-8c29-5542c5434dca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_null_field [0.117661s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4abf2dec-bc66-4697-bbce-479813bb4df7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:03.119123+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.064372s] ... 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-6c877657-9af3-4fbe-9b78-3ac59754a809
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.097130s] ... 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-7cfaf79a-6986-4db1-8eca-f76ae4c6b826
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.062976s] ... 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-af6e965a-2166-4b6e-9d97-050921fb9a18
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.035783s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 WITH {} GOT Response: 405 Method Not Allowed
Allow: DELETE, GET, PATCH, POST
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.180413s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/5a741005-4d40-4336-8ad5-b499567bba16/ports WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_true_field [0.124133s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0fbc98f9-3732-4ea2-86aa-e31683d9c7ee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.95
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:03.237408+00:00", "updated_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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.055904s] ... 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-d39d9fff-d7d3-4f09-9687-2d8d30e60f02
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'bad_trait' is not valid under any of the given schemas. Possible root cause: 'bad_trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.126050s] ... 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-e828ab28-58d0-49ae-915a-ef12a6492a6b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.042801s] ... 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-6e0b35d1-5f57-4acc-9594-57a1be162c5c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.039832s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content
Openstack-Request-Id: req-c99bd24b-dc51-4a65-95f8-94290fde9dfc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.136352s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-32588878-5f29-4fb5-a1fc-d3a4d8d94db9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.41
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:03.352107+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-d84fd555-31b1-47a6-acd9-0ebd7b6c4aa7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.42
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:03.352107+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "lin
    ks": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.156896s] ... 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\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.090893s] ... 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-01ad0d28-86b9-42b0-b904-e9e529bfcf08
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.057385s] ... 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-e253b7b3-9b39-4c1e-bfce-9fb2bdbf73ee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.103020s] ... 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-6fc94561-b80e-4cc7-9060-2acec80e003f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.133160s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6cf61412-1d9c-4f28-b863-ac931dbe0e00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:03.487599+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-f9ae97f0-852d-48f1-98fa-f71f04ba6e9b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:03.487599+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_off_with_disable_power_off [0.140539s] ... 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-2cc93783-4fda-41b3-9053-d3b2dba22d01
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to set node power state to power off.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.100806s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d01a60f2-2ee9-48fa-b1f1-0cb92c3191d4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "14640639-f094-412e-91ad-2e898a4e42e7", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/14640639-f094-412e-91ad-2e898a4e42e7", "rel": "self"}, {"href": "http://localhost/portgroups/14640639-f094-412e-91ad-2e898a4e42e7", "rel": "bookmark"}]}, {"uuid": "4c1aac95-203e-4957-bb4e-a6d6426f305d", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/4c1aac95-203e-4957-bb4e-a6d6426f305d", "rel": "self"}, {"href": "http://localhost/portgroups/4c1aac95-203e-4957-bb4e-a6d6426f305d", "rel": "bookmark"}]}, {"uuid": "f5bd0c5d-3041-4fc1-8e9b-05cdbdc33368", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/f5bd0c5d-3041-4fc1-8e9b-05cdbdc33368", "rel": "self"}, {"href": "http://localhost/portgroups/f5bd0c5d-3041-4fc1-8e9b-05cdbdc33368", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.181355s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content
Openstack-Request-Id: req-f3c0ca9f-818d-4f19-ac04-1879c1580102
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.093940s] ... 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-fc8bb754-2579-401e-a074-15c1b3a5d153
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.154331s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3e0a5609-8996-4424-9cf2-3c07be3832ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.30
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:03.666244+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.108135s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4f27864e-4063-48e9-945c-f40bf56ef017
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6ce4ec73-db48-4259-be5d-a0c7a9bf8711", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/6ce4ec73-db48-4259-be5d-a0c7a9bf8711", "rel": "self"}, {"href": "http://localhost/portgroups/6ce4ec73-db48-4259-be5d-a0c7a9bf8711", "rel": "bookmark"}]}, {"uuid": "0ee81760-2b48-47ce-8219-64b6477a4f3c", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/0ee81760-2b48-47ce-8219-64b6477a4f3c", "rel": "self"}, {"href": "http://localhost/portgroups/0ee81760-2b48-47ce-8219-64b6477a4f3c", "rel": "bookmark"}]}, {"uuid": "2db21ded-a7d6-4cb8-a768-a191b82cb115", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/2db21ded-a7d6-4cb8-a768-a191b82cb115", "rel": "self"}, {"href": "http://localhost/portgroups/2db21ded-a7d6-4cb8-a768-a191b82cb115", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.108420s] ... 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-8ed3d97a-5025-433f-a5b6-4827b2d7bbe9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.155970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 204 No Content
Openstack-Request-Id: req-ffd50572-585d-4e44-9743-a0e8263f675a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid [0.103383s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-348c048c-ee94-4b36-b710-c5f48fc7f856
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/portgroups?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-dd7cf823-7386-4ce6-ad2c-71c95c424424
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/portgroups?sort_key=internal_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1a6406ec-4c5c-470d-ac17-7de713b7afdf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/portgroups?sort_key=properties WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-08833f56-790e-4981-9396-88447d8c36b3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.108941s] ... 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-354a08f0-937d-4375-b5cd-63315fcdbbbc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.069460s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-735706d3-165c-4ced-bdaa-320fa0334ff7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version [0.195202s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb807d23-be14-434b-bed1-3330434e09d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.64
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:03.824489+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-eec9c12b-ca16-416f-88ad-f423390f8601
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:03.824489+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x
    86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.163897s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-da2e400a-e552-4e3d-8ad3-f271cd28f7e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.114626s] ... 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-175ae676-f706-4d84-9d3d-fa3a56a5bf62
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.119826s] ... 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-039787c1-20e5-467c-92c0-0bd176a9a3fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:03.973614+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field [0.145344s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-de19619b-c9a0-430c-9693-d5dec21673fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:04.011347+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"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.147181s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-54500338-3cba-40cd-a87c-b0ff6a08c4b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.105683s] ... 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-96edcd70-6eb7-4899-89e4-bdc287b30e5d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.114031s] ... 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-dd1a7cd4-fd43-45aa-93aa-329550ca0ba4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present [0.142013s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f2794674-c78c-4f9a-807f-0f939977457d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:04.164121+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.098162s] ... 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-60f5fff4-832c-4b37-845f-66c1ec313266
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.112595s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/node-39/traits/CUSTOM_12 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6f619c14-4b26-41b3-8498-3d9d6adcb805
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a trait 'CUSTOM_12'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.118952s] ... 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-c6d96a83-37f5-48e0-9fff-e95644f0aada
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:04.217407+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data [0.104862s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/57818284-e25e-49e1-af14-be9e3a49d29c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4d018f14-c091-4663-8ca4-2e40972b621f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "57818284-e25e-49e1-af14-be9e3a49d29c", "created_at": "2025-06-04T21:50:04.281179+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/57818284-e25e-49e1-af14-be9e3a49d29c", "rel": "self"}, {"href": "http://localhost/nodes/57818284-e25e-49e1-af14-be9e3a49d29c", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/57818284-e25e-49e1-af14-be9e3a49d29c/ports", "rel": "self"}, {"href": "http://localhost/nodes/57818284-e25e-49e1-af14-be9e3a49d29c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/57818284-e25e-49e1-af14-be9e3a49d29c/states", "rel": "self"}, {"href
    ": "http://localhost/nodes/57818284-e25e-49e1-af14-be9e3a49d29c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/57818284-e25e-49e1-af14-be9e3a49d29c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/57818284-e25e-49e1-af14-be9e3a49d29c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/57818284-e25e-49e1-af14-be9e3a49d29c/volume", "rel": "self"}, {"href": "http://localhost/nodes/57818284-e25e-49e1-af14-be9e3a49d29c/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.096492s] ... 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-69a9768a-5da7-403b-a759-527b7505d781
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.120142s] ... 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-7ae1386c-f716-4906-b28e-7a0adfc0d7bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.127175s] ... 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-4f69b279-9d43-48bb-ab5f-2f9f7abe13be
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:04.341573+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version [0.112116s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5f02028f-39ae-4c2f-a633-3acb9a7eb16e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.65
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:04.378033+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-a789edb3-531f-4816-a7a9-84a48902b6d4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.66
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:04.378033+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.TestTraits.test_get_all_traits [0.119626s] ... 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-b7535d1b-f1b3-4c55-ad65-597c03601189
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"traits": ["CUSTOM_1", "CUSTOM_2"]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.121326s] ... 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-b9681c6a-9a99-40e9-b113-ef6cfe28c4d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.123984s] ... 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-45e6b76a-ea1b-4314-b553-dbbf42f79649
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.137580s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-740af43a-5879-4cb5-9f8f-0f6e1eafd6a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.49
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:04.513309+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-52bb82be-d21a-4529-9fa9-d48a59daf626
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:04.513309+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.113733s] ... 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-a24adf7b-3757-49da-b6d5-ae9c92f863fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.137361s] ... 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-5ea2dbcc-0839-4181-b9a8-50ba4e81db9e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.110685s] ... 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-352db9a1-bd4f-4f1b-9276-8cebe5a063e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:04.586648+00:00", "updated_at": null, "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_null_field [0.120852s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f9daba2d-b679-4fbd-8a6c-09934c706736
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:04.651065+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.129775s] ... 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-b4c3f374-54e2-4cf5-a53b-6ef82e03a928
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.137113s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/badname/traits WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-af24ba19-528f-4d1f-b823-fdb11e347419
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed [0.159501s] ... 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-7582cf30-74a4-40d8-a3db-b6771c1f7e49
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.154074s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f177974b-2f7d-44ac-b1a1-1a979ae51513
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.50
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:04.755304+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.TestTraits.test_no_add_single_trait_via_body [0.116510s] ... 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-1d5ae703-ccf9-4190-82eb-f032e26d17b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: Additional properties are not allowed ('trait' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.165290s] ... 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-6f26ded3-3897-433b-b8dc-5a5e6f538085
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.125384s] ... 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-001fba70-4737-483b-876b-5ad73edce8d1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes/<node identifier>/traits/<trait> with no body, or all node traits may be replaced via PUT /v1/nodes/<node identifier>/traits with the list of traits specified in the request body.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected [0.210384s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/fde3a536-f59a-4273-892d-3c7efc748b54 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d38ba853-0cd6-43cc-922a-fc11a2b9b0f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "fde3a536-f59a-4273-892d-3c7efc748b54", "created_at": "2025-06-04T21:50:04.948669+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/fde3a536-f59a-4273-892d-3c7efc748b54", "rel": "self"}, {"href": "http://localhost/nodes/fde3a536-f59a-4273-892d-3c7efc748b54", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde3a536-f59a-4273-892d-3c7efc748b54/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde3a536-f59a-4273-892d-3c7efc748b54/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde3a536-f59a-4273-892d-3c7efc748b54/states", "rel": "self"}, {"href": "http://localhost/nodes/fde3a536-f59a-4273-892d-3c7efc748b54/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde3a536-f59a-4273-892d-3c7efc748b54/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde3a536-f59a-4273-892d-3c7efc748b54/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde3a536-f59a-4273-892d-3c7efc748b54/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde3a536-f59a-4273-892d-3c7efc748b54/volume", "rel": "bookmark"}]}
GET /v1/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cee29f67-ce20-4747-ae7c-b75d77630953
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1ce8b6fb-4714-4f69-8ed3-c33d42eeb652", "created_at": "2025-06-04T21:50:04.997411+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/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652", "rel": "self"}, {"href": "http://localhost/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652/states", "rel": "self"}, {"href": "http://localhost/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ce8b6fb-4714-4f69-8ed3-c33d42eeb652/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.170284s] ... 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-df45ca4c-826e-49a7-8606-09a01cf9f6ee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.099857s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content
Openstack-Request-Id: req-b35b16bc-ab79-494a-8f95-b354039410a2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.294149s] ... 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-dcea2a72-bd8f-4fef-ae72-0ac170a7df01
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:04.903803+00:00", "updated_at": "2025-06-04T21:50:04.938443+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-36327c44-212d-45a7-a5d3-8c125de9bdde
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:04.903803+00:00", "updated_at": "2025-06-04T21:50:04.938443+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.118976s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e938b00a-f168-4f03-ac1f-34018763ede6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.132239+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-8c9ac17e-5288-4685-97fe-10b05ade5ae5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.132239+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_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.092230s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b1ac90f8-2540-49f6-aa24-cb3eafca56bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.47
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.225055+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-5d650e12-9589-4640-b6d5-f85a3b9ea912
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.225055+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.TestTraits.test_set_all_traits_empty [0.181524s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {'traits': []} GOT Response: 204 No Content
Openstack-Request-Id: req-454ebd82-a1de-463a-b101-b7fb295ab035
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.217521s] ... 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-1f28ffe2-5fe8-4883-b15e-8d3fb401c813
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.067032s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-881e67e3-fe19-4768-868e-85f93f002c04
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.48
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.312675+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": true, "protected_reason": "reason!", "provision_state": "active", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id [0.231329s] ... 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-14442308-6461-4fc1-9c07-b79705deecec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired [0.075629s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/023e6406-6365-471a-ae63-4127227a5314 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9793d0f0-50e8-4d14-b366-e462288a8b96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "023e6406-6365-471a-ae63-4127227a5314", "created_at": "2025-06-04T21:50:05.388081+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/023e6406-6365-471a-ae63-4127227a5314", "rel": "self"}, {"href": "http://localhost/nodes/023e6406-6365-471a-ae63-4127227a5314", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/023e6406-6365-471a-ae63-4127227a5314/ports", "rel": "self"}, {"href": "http://localhost/nodes/023e6406-6365-471a-ae63-4127227a5314/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/023e6406-6365-471a-ae63-4127227a5314/states", "rel": "self"}, {"href": "http://localhost/nodes/023e6406-6365-471a-ae63-4127227a5314/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/023e6406-6365-471a-ae63-4127227a5314/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/023e6406-6365-471a-ae63-4127227a5314/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/023e6406-6365-471a-ae63-4127227a5314/volume", "rel": "self"}, {"href": "http://localhost/nodes/023e6406-6365-471a-ae63-4127227a5314/volume", "rel": "bookmark"}]}
GET /v1/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f255fcbf-e6c9-4731-adcc-76df6ac8c8b7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "6def3df7-7726-4934-b662-92ccf3b6d1b3", "created_at": "2025-06-04T21:50:05.407205+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/6def3df7-7726-4934-b662-92ccf3b6d1b3", "rel": "self"}, {"href": "http://localhost/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3/ports", "rel": "self"}, {"href": "http://localhost/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3/states", "rel": "self"}, {"href": "http://localhost/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3/volume", "rel": "self"}, {"href": "http://localhost/nodes/6def3df7-7726-4934-b662-92ccf3b6d1b3/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.160106s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits WITH {'traits': []} GOT Response: 405 Method Not Allowed
Allow: DELETE, GET, PATCH, POST
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.167677s] ... 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-061d765f-aab1-41cd-96ef-6889ecc6d752
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version [0.070279s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-43044fbd-61f8-455f-9e9c-4eb40a1f07d8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.462995+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-96937b67-1786-4171-bad4-9f7a963e7be7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.462995+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_portgroup.TestPatch.test_remove_non_existent_property_fail [0.202518s] ... 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-6414f01c-29e5-42da-94f5-b1392f79cd2d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.114115s] ... 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-db832822-3a5e-4c48-b711-48119a5aebf9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_reason_hidden_in_lower_version [0.085538s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f57c5459-eb2d-482a-9ba3-617517de5db1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.546880+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-36943ccc-3dc6-4cef-8ee7-5819dd6674ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.546880+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.TestTraits.test_set_all_traits_rejects_bad_trait [0.189978s] ... 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-511a643b-c599-4ed0-a5fd-88b1fbb1cb56
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'BAD_TRAIT' is not valid under any of the given schemas. Possible root cause: 'BAD_TRAIT' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason [0.055190s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fa010f9a-bd13-4e3c-b810-016c4f123758
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.61
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.623982+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot [0.081722s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-14cca4b4-b544-499a-a69f-4a933d843be2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "db0baddf-7a70-4b8a-b79b-69d4e5044f55", "created_at": "2025-06-04T21:50:05.680978+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/db0baddf-7a70-4b8a-b79b-69d4e5044f55", "rel": "self"}, {"href": "http://localhost/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55/ports", "rel": "self"}, {"href": "http://localhost/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55/states", "rel": "self"}, {"href": "http://localhost/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55/volume", "rel": "self"}, {"href": "http://localhost/nodes/db0baddf-7a70-4b8a-b79b-69d4e5044f55/volume", "rel": "bookmark"}]}
GET /v1/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-19cbe8b2-317c-446c-9181-d1e2485b282c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "f4a4558c-05ec-417c-947e-e2f2e757acfd", "created_at": "2025-06-04T21:50:05.692719+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/f4a4558c-05ec-417c-947e-e2f2e757acfd", "rel": "self"}, {"href": "http://localhost/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd/ports", "rel": "self"}, {"href": "http://localhost/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd/states", "rel": "self"}, {"href": "http://localhost/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd/volume", "rel": "self"}, {"href": "http://localhost/nodes/f4a4558c-05ec-417c-947e-e2f2e757acfd/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version [0.072911s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b2475847-b690-4871-97ff-ab95dab53a11
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.780540+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-4035c307-cea5-490d-a160-bce3b5347d9e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:05.780540+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, 
    "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.260473s] ... 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-939bf439-9e37-481d-81cd-3dd0930a31fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.053250s] ... 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-2fb98582-b004-4047-a313-6d6398df18a8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.273179s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-bcc31db3-e1d3-41bd-b721-971e8958baa4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes/<node identifier>/traits/<trait> with no body, or all node traits may be replaced via PUT /v1/nodes/<node identifier>/traits with the list of traits specified in the request body.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode [0.071574s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/98883c80-f726-4586-ae24-0a04eb8c4666/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2b5f641-662b-4682-9af0-636beaa4a33c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "bios", "secure_boot": null}
GET /v1/nodes/8fe15b7a-523e-4eb0-b3fb-f9603993c33d/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c78899c3-7ce3-4c8d-aedf-6f2ebbe3ebcc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": null}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version [0.055771s] ... 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-b90d25d9-aa3d-4ecf-a981-00144e0be3eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d6e31383-bdb9-400b-9784-321ffb7bba2b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.196733s] ... 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-9f2ddc4b-d2e8-493c-b2c4-7c71b8304d91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.043342s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/eggs/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f8b0bacb-bfa4-43fb-a4e1-57e7a0ff8712
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "1971-03-09T00:00:00+00:00"}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.186540s] ... 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-350d4d0d-3470-443b-816a-1b849035f039
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version [0.062941s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8f8712cb-b454-43c7-9c63-0b3a2174db4a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.8
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:06.086042+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-c6f6e9ab-16ba-41be-8461-a7a8b57a5b4c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:06.086042+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_node.TestListNodes.test_node_states_raid [0.038876s] ... 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-2e8d9e37-a3b0-4b00-8077-97a8a40b9769
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00", "raid_config": {"foo": "bar"}, "target_raid_config": {"foo": "bar"}}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.144150s] ... 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-3714ab94-374c-4e1e-aba1-c3fcee03dbb8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:06.071228+00:00", "updated_at": "2025-06-04T21:50:06.107428+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot [0.069665s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/68804a4d-52bb-4f2a-93b1-0d232b214aa1/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aea08dd6-1e85-4965-bc05-58953dce5f52
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": true}
GET /v1/nodes/60be1e13-8040-4a4c-97c1-b0a7b6d80548/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-70285f74-6b60-4b9f-abdd-2b9fe4472458
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": false}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id [0.094790s] ... 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-f5f5cb39-1b52-44c0-b06a-aa6a57b1c173
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version [0.056364s] ... 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-1a760371-9861-439d-9f29-33b0c40b6803
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.74
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ca9d49a4-03c5-4cb9-bcea-a5968172cd2b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{3} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis [0.211899s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content
Openstack-Request-Id: req-91b9575a-4057-4671-8529-0113ba080c2b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.754654s] ... 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-7fde32ec-b4c1-495c-a125-a71df3b18d0c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.054310s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c30769c0-a2ee-4855-b5b9-b14e4ad03214
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:06.322173+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-79156490-8124-44e6-87e5-a4b393432801
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:06.322173+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "
    rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid [0.132484s] ... 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-b8f76e81-c406-47a8-935a-e2d52ca26e02
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:06.328955+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.085829s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.069220s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-03ed392e-45a3-4dc9-9d54-e00824ce071b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.36
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:06.387852+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-3e0ecf2e-6cc9-4d25-9ea7-80abf2c8cd82
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:06.387852+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes
    /1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.104490s] ... 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-24db2ffb-4c94-4680-a0ac-1cd96b5389e3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.039575s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3224d321-3ec3-43eb-8b6c-c09be5cea2a9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.083878s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.110551s] ... 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-5b235eca-1873-433a-aefd-d62da215615a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization [0.083607s] ... 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-81feec96-ef47-4552-b6f5-064663631472
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "provision_state": "available", "maintenance": false, "instance_uuid": null, "last_error": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.128516s] ... 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-729d7bc7-e689-485b-8b66-8ae9bff84539
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type [0.077555s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.083877s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_with_disable_power_off [0.177333s] ... 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-511fe007-3abb-4fa5-99c9-cea87080f34f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.27
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to set node power state to soft power off.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.084988s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.060985s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.146317s] ... 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-7e2c1506-f26a-4674-a336-000d90c4331d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.079884s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular [0.383926s] ... 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-f6a44932-e395-4c1a-87c9-a6f2328585a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:06.816753+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.079706s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format [0.103369s] ... 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-f261abe5-3db6-4bf0-9241-280bb56eb6db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.122996s] ... 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-44a5f67a-7897-4d58-b319-ae04eea5c701
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.083767s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.504045s] ... 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-5389f943-2a1d-4f2d-9022-f1ae4ee65973
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"portgroups": [{"uuid": "fc35563d-5140-402c-8b64-203e06004c9d", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/fc35563d-5140-402c-8b64-203e06004c9d", "rel": "self"}, {"href": "http://localhost/portgroups/fc35563d-5140-402c-8b64-203e06004c9d", "rel": "bookmark"}]}, {"uuid": "4dac4ca6-96dd-4d0c-b74d-8611354216bf", "address": "52:54:00:cf:2d:31", "name": "pg-1", "links": [{"href": "http://localhost/v1/portgroups/4dac4ca6-96dd-4d0c-b74d-8611354216bf", "rel": "self"}, {"href": "http://localhost/portgroups/4dac4ca6-96dd-4d0c-b74d-8611354216bf", "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-eeb56862-f6eb-49bc-a820-cba4881db900
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"portgroups": [{"uuid": "fc35563d-5140-402c-8b64-203e06004c9d", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/fc35563d-5140-402c-8b64-203e06004c9d", "rel": "self"}, {"href": "http://localhost/portgroups/fc35563d-5140-402c-8b64-203e06004c9d", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=fc35563d-5140-402c-8b64-203e06004c9d"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed [0.086423s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/52:54:00:cf:2d:31 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
{"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.125377s] ... 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-72c6dd30-b984-4e63-8f86-df0c280fa50b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.084652s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1f634ad9-7a34-4433-b578-c3558c9414bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:07.103041+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_ramdisk.TestContinueInspection.test_bmc_address_as_none [0.128443s] ... 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-a5c84abc-d4a5-439e-a192-275a2d6a541e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "82328cc6-e57d-44f9-9ae5-8310d8373d37"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.122859s] ... 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-3e2da40e-b829-497e-af3c-4c9da7c89c7d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:07.134130+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.121591s] ... 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-2ad68081-ebd4-4a2f-8fd0-2dbe31294dc7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.110144s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8ff3db13-e169-43fe-9a36-9db3251e7a57
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:07.200855+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"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version [0.077537s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version [0.062700s] ... 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_ramdisk.TestContinueInspection.test_inspector_compatibility [0.117004s] ... 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-0d64aa47-1038-4cab-857b-450bb1c523da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "3ac6cce5-e1e3-4d15-aa92-58c0bf298557"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.103792s] ... 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-d06430aa-1f6a-4db2-9251-38ad93139842
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname [0.135102s] ... 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-3390b9bf-2c3b-43a2-b751-0b8f126eabf1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:07.356986+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_invalid_schema [0.108752s] ... 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-0a415911-f1d2-4638-9030-8e0ee90c7f0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy [0.096786s] ... 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-721449a0-8909-446e-ba4f-c6579da4d7f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.73
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.192412s] ... 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-7821a757-5b98-4ebe-b269-ffd902519ff2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "a7ad8f33-0855-4fe3-92d3-72a758fb0c0e", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/a7ad8f33-0855-4fe3-92d3-72a758fb0c0e", "rel": "self"}, {"href": "http://localhost/ports/a7ad8f33-0855-4fe3-92d3-72a758fb0c0e", "rel": "bookmark"}]}, {"uuid": "e1d38340-56c9-48d2-b5ef-e67b2b2f19d9", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/e1d38340-56c9-48d2-b5ef-e67b2b2f19d9", "rel": "self"}, {"href": "http://localhost/ports/e1d38340-56c9-48d2-b5ef-e67b2b2f19d9", "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-99e8af3b-5fb3-4a11-a9fa-5b5c14d036c7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "a7ad8f33-0855-4fe3-92d3-72a758fb0c0e", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/a7ad8f33-0855-4fe3-92d3-72a758fb0c0e", "rel": "self"}, {"href": "http://localhost/ports/a7ad8f33-0855-4fe3-92d3-72a758fb0c0e", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=a7ad8f33-0855-4fe3-92d3-72a758fb0c0e"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.134924s] ... 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-b6bf4b13-3c76-4b40-8d21-91d0f8aef247
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:07.467245+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request [0.121966s] ... 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-17106fd7-678f-40ce-be95-17aa43357844
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.074243s] ... 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\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_new_api [0.137221s] ... 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-86c28ced-1cc8-497a-9937-5620779ca162
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "b1e407b3-ce4b-4d80-8f67-575dd7021004", "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/b1e407b3-ce4b-4d80-8f67-575dd7021004", "rel": "self"}, {"href": "http://localhost/nodes/b1e407b3-ce4b-4d80-8f67-575dd7021004", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "noop", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed [0.127658s] ... 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-401f8dd8-d7c5-40ff-add5-eb7aeff355e6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:07.611643+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.109548s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-534c32db-f426-491e-991e-6c954739178d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:07.643610+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_ramdisk.TestContinueInspection.test_no_usable_lookup_data [0.136412s] ... 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-f6cf2841-03f5-437b-b948-17810d36caff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state [0.173054s] ... 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-72898bdd-d3e1-45b7-b53f-3874df043e61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node  is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.063994s] ... 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-760c8a7c-ac0c-4135-bb5a-3e141506eda4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.39
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.075195s] ... 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-475eddf8-ac9f-4cb5-b4e6-170e2c22ee6f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.141746s] ... 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-8dd2c736-09c1-416d-8a19-ee77d1633431
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup None could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_old_api_version [0.116177s] ... 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-84ef423d-6d5b-4fd5-8ad4-042fc2ae7303
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.054434s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/919f5b23-57f3-401d-9a9b-2e53ce3f95fc WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3d09d95b-53e5-4568-b9ae-1d33b6e42289
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 919f5b23-57f3-401d-9a9b-2e53ce3f95fc could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.173219s] ... 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-3b145108-9092-452f-ac6c-ac7efe8ead06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.049432s] ... 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-722765b1-9ea7-494a-bb2d-c82c04cf921b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:07.903946+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.129352s] ... 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\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.065186s] ... 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-366ff321-89e5-41b8-bad7-e08cabeeff00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /internal_info. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.171839s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=ab439460-d9b0-4d4e-85fb-2819d391276c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ad6f3e4c-c800-410b-9276-d6430927b1b8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "ab439460-d9b0-4d4e-85fb-2819d391276c", "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/ab439460-d9b0-4d4e-85fb-2819d391276c", "rel": "self"}, {"href": "http://localhost/nodes/ab439460-d9b0-4d4e-85fb-2819d391276c", "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=ab439460-d9b0-4d4e-85fb-2819d391276c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b493a535-83dc-4ec0-b2b3-7fb71a1e0a27
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "ab439460-d9b0-4d4e-85fb-2819d391276c", "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/ab439460-d9b0-4d4e-85fb-2819d391276c", "rel": "self"}, {"href": "http://localhost/nodes/ab439460-d9b0-4d4e-85fb-2819d391276c", "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=ab439460-d9b0-4d4e-85fb-2819d391276c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-632b0a6e-e0ab-4b42-a6ee-63bc46a1209d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "ab439460-d9b0-4d4e-85fb-2819d391276c", "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/ab439460-d9b0-4d4e-85fb-2819d391276c", "rel": "self"}, {"href": "http://localhost/nodes/ab439460-d9b0-4d4e-85fb-2819d391276c", "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"]}}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.066597s] ... 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-9742cd7f-42aa-4d7e-aeb9-06a4b5565dd5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:08.036710+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"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.209622s] ... 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-7ae42633-2da3-4287-afae-d1555718e5c3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.127940s] ... 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-507da94d-baae-4a78-875d-a4f39e4dafb1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "2e9b7c65-9f7b-4602-902d-58179847365b", "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/2e9b7c65-9f7b-4602-902d-58179847365b", "rel": "self"}, {"href": "http://localhost/nodes/2e9b7c65-9f7b-4602-902d-58179847365b", "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"]}}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.124027s] ... 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-e5a0c27a-6aa3-4b71-a239-cb837d91953d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/properties/abc', 'op': 'add', 'value': 123}] GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-f3d5c05f-7cc6-4276-9196-78f451698f6f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.212521s] ... 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-bf20386f-1984-4aa9-9e48-c9e12973c813
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.092692s] ... 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-55c85ab5-1cca-42db-a6c2-a1e86b2d7bc4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:08.250227+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.045305s] ... 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\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_logical [0.031411s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.178076s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-08d185f2-7eab-4c80-b730-d3f96af05416
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "7e182ff7-af49-4956-8615-64b2637a3006", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/7e182ff7-af49-4956-8615-64b2637a3006", "rel": "self"}, {"href": "http://localhost/nodes/7e182ff7-af49-4956-8615-64b2637a3006", "rel": "bookmark"}]}, {"uuid": "9c090e4f-6dc5-4dc0-b075-eb8a762ccb82", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/9c090e4f-6dc5-4dc0-b075-eb8a762ccb82", "rel": "self"}, {"href": "http://localhost/nodes/9c090e4f-6dc5-4dc0-b075-eb8a762ccb82", "rel": "bookmark"}]}, {"uuid": "ad000aba-f686-4072-9104-3d0d4cb4f278", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/ad000aba-f686-4072-9104-3d0d4cb4f278", "rel": "self"}, {"href": "http://localhost/nodes/ad000aba-f686-4072-9104-3d0d4cb4f278", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_physical [0.039889s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid [0.049057s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states [0.359638s] ... 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-b8670190-0927-476f-9ea3-e37c9055fe4c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-03670ce7-16c9-4838-af06-81d0b72e7c1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-12218f08-f361-4dea-a511-84bd32a6d876
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-66a09474-5343-402e-b83a-d0f5d4ed0641
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged [0.061391s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok [0.033218s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.185290s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-59fcaeb7-d651-4b6a-8964-9fdd34d74d17
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.21
{"nodes": [{"uuid": "e8c1109d-0b9b-46f1-b3ba-851cfd2d4171", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e8c1109d-0b9b-46f1-b3ba-851cfd2d4171", "rel": "self"}, {"href": "http://localhost/nodes/e8c1109d-0b9b-46f1-b3ba-851cfd2d4171", "rel": "bookmark"}]}, {"uuid": "cff1593c-9a11-48ce-b081-26ef28be69fe", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cff1593c-9a11-48ce-b081-26ef28be69fe", "rel": "self"}, {"href": "http://localhost/nodes/cff1593c-9a11-48ce-b081-26ef28be69fe", "rel": "bookmark"}]}, {"uuid": "196fe35e-1c6f-4473-87e3-440539fc8d1a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/196fe35e-1c6f-4473-87e3-440539fc8d1a", "rel": "self"}, {"href": "http://localhost/nodes/196fe35e-1c6f-4473-87e3-440539fc8d1a", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_set_both_switches [0.038519s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type [0.034286s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id [0.042486s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value [0.032100s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.176078s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-75ffda24-04c3-4d90-91b6-7fb007a81379
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=properties WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4ca95d10-65af-4861-936c-6b48c26bfe2b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=driver_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-385d80c5-2022-48ea-959a-2b139833bbb0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1a71ea2f-501d-4360-940d-82051390f9a4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=instance_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1fbc4b4a-e60b-4d23-97c7-ad167ae1475f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value instance_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=driver_internal_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-43423ada-d267-4ffb-a6b1-5eb60abb9886
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_internal_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=clean_step WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ed89767e-90a0-469e-a47b-9c7f7e14f935
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value clean_step is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/nodes?sort_key=traits WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-28446236-e1aa-4e96-85f4-695da2afaea9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key [0.040195s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory [0.046919s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.326366s] ... 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-27b3393f-dd8a-4873-b0f4-ce6a3cd88b3b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-7336ab54-b23c-479e-9703-c19ab81fae36
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-aae7eba0-67c4-488f-9ba9-7313f6d52cc9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-8f706ada-5102-4682-917e-b2622072d9cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed [0.116791s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-2e5064b2-dd9a-437c-8d22-281e76087dab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.20
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key [0.072136s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.772211s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=fb049470-c86b-4386-a8ae-a0e781fc9aef WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-84811827-0874-45a2-a8a1-542926bc953e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "fb049470-c86b-4386-a8ae-a0e781fc9aef", "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/fb049470-c86b-4386-a8ae-a0e781fc9aef", "rel": "self"}, {"href": "http://localhost/nodes/fb049470-c86b-4386-a8ae-a0e781fc9aef", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "xyzabc", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id [0.088304s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.168466s] ... 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-6621f3cf-3ef7-49c3-98ef-70e058a7b404
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.078037s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.124993s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=4072233c-29bd-49cf-a2ea-81195f1afc95 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a6e1799e-683c-4de0-81ef-8fa622cef056
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "4072233c-29bd-49cf-a2ea-81195f1afc95", "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/4072233c-29bd-49cf-a2ea-81195f1afc95", "rel": "self"}, {"href": "http://localhost/nodes/4072233c-29bd-49cf-a2ea-81195f1afc95", "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.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive [0.223797s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=false WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8e1110d3-89f9-47ee-b1c9-78dd7e6370a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "dcf37756-efb2-455d-af15-7cf06d8873d8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/dcf37756-efb2-455d-af15-7cf06d8873d8", "rel": "self"}, {"href": "http://localhost/nodes/dcf37756-efb2-455d-af15-7cf06d8873d8", "rel": "bookmark"}]}, {"uuid": "eb2816e9-031c-4ab7-837f-befdc4b10913", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/eb2816e9-031c-4ab7-837f-befdc4b10913", "rel": "self"}, {"href": "http://localhost/nodes/eb2816e9-031c-4ab7-837f-befdc4b10913", "rel": "bookmark"}]}, {"uuid": "887b3629-aec8-45df-8f56-269098f0d996", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/887b3629-aec8-45df-8f56-269098f0d996", "rel": "self"}, {"href": "http://localhost/nodes/887b3629-aec8-45df-8f56-269098f0d996", "rel": "bookmark"}]}]}
GET /v1/nodes?associated=FALSE WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-81f68d81-217a-4a60-98b6-1ff00131a17c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "dcf37756-efb2-455d-af15-7cf06d8873d8", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/dcf37756-efb2-455d-af15-7cf06d8873d8", "rel": "self"}, {"href": "http://localhost/nodes/dcf37756-efb2-455d-af15-7cf06d8873d8", "rel": "bookmark"}]}, {"uuid": "eb2816e9-031c-4ab7-837f-befdc4b10913", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/eb2816e9-031c-4ab7-837f-befdc4b10913", "rel": "self"}, {"href": "http://localhost/nodes/eb2816e9-031c-4ab7-837f-befdc4b10913", "rel": "bookmark"}]}, {"uuid": "887b3629-aec8-45df-8f56-269098f0d996", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/887b3629-aec8-45df-8f56-269098f0d996", "rel": "self"}, {"href": "http://localhost/nodes/887b3629-aec8-45df-8f56-269098f0d996", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory [0.077538s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.167194s] ... 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-c847b8a5-756b-4f1f-8a3e-17591d0f0f65
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"rescue_password\\\" is only valid when setting target provision state to rescue\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.076592s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.137484s] ... 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-b149a370-4d3c-4847-93c9-8293386be9e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "72eb02d8-cbf9-4900-b2d1-7a688f3cb1b8", "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/72eb02d8-cbf9-4900-b2d1-7a688f3cb1b8", "rel": "self"}, {"href": "http://localhost/nodes/72eb02d8-cbf9-4900-b2d1-7a688f3cb1b8", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "123456", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.179514s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes?associated=False&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-480b87e0-62a4-42ec-a4c0-f6926095c560
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"nodes": [{"uuid": "edc4f6f7-5fba-49af-aeb0-a8b0395f1d81", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/edc4f6f7-5fba-49af-aeb0-a8b0395f1d81", "rel": "self"}, {"href": "http://localhost/nodes/edc4f6f7-5fba-49af-aeb0-a8b0395f1d81", "rel": "bookmark"}]}, {"uuid": "713fa5e9-a26d-40e6-bef2-84dfcb20b5df", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/713fa5e9-a26d-40e6-bef2-84dfcb20b5df", "rel": "self"}, {"href": "http://localhost/nodes/713fa5e9-a26d-40e6-bef2-84dfcb20b5df", "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=713fa5e9-a26d-40e6-bef2-84dfcb20b5df"}
{1} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional [0.084955s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_addresses [0.090777s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-89c59698-0bf6-45e9-bb78-637b909597e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.112423s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1c0f69cb-c42c-4f2a-b46d-33028ebc6802
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "1b40c240-635f-4064-ad9b-0678ff36b7c6", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1b40c240-635f-4064-ad9b-0678ff36b7c6", "rel": "self"}, {"href": "http://localhost/volume/connectors/1b40c240-635f-4064-ad9b-0678ff36b7c6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "eb9b169b-d546-40c5-87db-41249b66db03", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/eb9b169b-d546-40c5-87db-41249b66db03", "rel": "self"}, {"href": "http://localhost/volume/connectors/eb9b169b-d546-40c5-87db-41249b66db03", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "0648da7a-a836-4e12-a21d-339813108293", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0648da7a-a836-4e12-a21d-339813108293", "rel": "self"}, {"href": "http://localhost/volume/connectors/0648da7a-a836-4e12-a21d-339813108293", "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=0648da7a-a836-4e12-a21d-339813108293"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.135732s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/validate?node=spam WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e07583dd-64ed-4917-92d9-1f118f17f4e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_node_uuid [0.097098s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-7e36a773-6b44-455e-982d-bcaa53218526
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.287658s] ... 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-bdcd53ab-615c-4334-a06b-5da323dddf31
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-03edbf13-3ea8-47c7-9b56-52873a5b7837
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 202 Accepted
Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states
Openstack-Request-Id: req-dbc8daac-6f8d-4553-b213-c02828ebb73a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.103240s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2675dc8d-e227-4c1b-ac03-76ef97b8f120
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "83e4fbab-278e-47b3-b248-cdef36a9636f", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/83e4fbab-278e-47b3-b248-cdef36a9636f", "rel": "self"}, {"href": "http://localhost/volume/connectors/83e4fbab-278e-47b3-b248-cdef36a9636f", "rel": "bookmark"}]}, {"uuid": "f01147f6-5c47-481b-bec0-382bc58c7ff5", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/f01147f6-5c47-481b-bec0-382bc58c7ff5", "rel": "self"}, {"href": "http://localhost/volume/connectors/f01147f6-5c47-481b-bec0-382bc58c7ff5", "rel": "bookmark"}]}, {"uuid": "ac29b0c8-fb05-4327-8f28-607fd2b02682", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/ac29b0c8-fb05-4327-8f28-607fd2b02682", "rel": "self"}, {"href": "http://localhost/volume/connectors/ac29b0c8-fb05-4327-8f28-607fd2b02682", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=ac29b0c8-fb05-4327-8f28-607fd2b02682"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.111812s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=31002af8-d171-40de-881f-eb2b562803bf WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5c56f078-9521-4438-9812-61e5e5cb812a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "31002af8-d171-40de-881f-eb2b562803bf", "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/31002af8-d171-40de-881f-eb2b562803bf", "rel": "self"}, {"href": "http://localhost/nodes/31002af8-d171-40de-881f-eb2b562803bf", "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.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.150587s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/validate?node=spam WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-1769ee22-92a0-49a5-b9d0-3cd70f754284
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.095554s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0305614f-1204-49e2-a765-23c36a218354
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "d536cf88-3474-4d35-bf9d-1982044e0a20", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d536cf88-3474-4d35-bf9d-1982044e0a20", "rel": "self"}, {"href": "http://localhost/volume/connectors/d536cf88-3474-4d35-bf9d-1982044e0a20", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a1da0944-b949-4e45-984f-7c8d61b7769a", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a1da0944-b949-4e45-984f-7c8d61b7769a", "rel": "self"}, {"href": "http://localhost/volume/connectors/a1da0944-b949-4e45-984f-7c8d61b7769a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "aa4880ed-f7bc-4d52-aef3-7cf05810aba2", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/aa4880ed-f7bc-4d52-aef3-7cf05810aba2", "rel": "self"}, {"href": "http://localhost/volume/connectors/aa4880ed-f7bc-4d52-aef3-7cf05810aba2", "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=aa4880ed-f7bc-4d52-aef3-7cf05810aba2"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.087305s] ... 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-53172d5a-7f04-4fae-99f2-334bd6fc5798
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.095768s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=True&limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8d64f2e2-a025-4d51-ac8b-fab1fc668537
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "6ce0d358-b49f-4fee-962d-0f0b530be696", "created_at": "2025-06-04T21:50:09.633475+00:00", "updated_at": null, "connector_id": "test-connector_id-0", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6ce0d358-b49f-4fee-962d-0f0b530be696", "rel": "self"}, {"href": "http://localhost/volume/connectors/6ce0d358-b49f-4fee-962d-0f0b530be696", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "4d6bd9ac-0e86-4e91-923f-9afb377cfce7", "created_at": "2025-06-04T21:50:09.634225+00:00", "updated_at": null, "connector_id": "test-connector_id-1", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/4d6bd9ac-0e86-4e91-923f-9afb377cfce7", "rel": "self"}, {"href": "http://localhost/volume/connectors/4d6bd9ac-0e86-4e91-923f-9afb377cfce7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "192f427e-2a92-4790-ae9f-bd412a268cdd", "created_at": "2025-06-04T21:50:09.634966+00:00", "updated_at": null, "connector_id": "test-connector_id-2", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/192f427e-2a92-4790-ae9f-bd412a268cdd", "rel": "self"}, {"href": "http://localhost/volume/connectors/192f427e-2a92-4790-ae9f-bd412a268cdd", "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=192f427e-2a92-4790-ae9f-bd412a268cdd"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.091569s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d6d4eeca-ac09-45b0-a20a-8a8a64b5f9e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.169823s] ... 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-86890ee6-3305-4db4-af55-2c9b44da39a7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.077639s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2793771-3515-4fe0-a3ab-de51b9fe37c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:09.728110+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_ramdisk.TestLookup.test_old_api_version [0.103536s] ... 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-2ecca180-88f9-420b-a665-d05eb56e8a22
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.071769s] ... 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-5d2b1f3d-fbd6-45f4-8214-a63f50dd3db0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.148497s] ... 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-833fbc16-e285-4ebb-b485-a9588a74fa08
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.415932s] ... 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-61a7c743-bccd-4694-9fd0-aa5060d45815
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-42efd26c-ebb4-4f0a-ab4a-021fcc5a6826
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-4b9b5425-0a05-4d89-b4f0-2e611e25ab44
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-ff07d5d2-13da-4340-9c25-083d8aa5b25c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-00233914-1ac4-4870-a503-aafa62d51334
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.38
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.099339s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=e6dd58d6-5d46-44d3-a602-cbdbbcee6552 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-95486149-87e9-49a2-975a-844b5b065e3c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.102883s] ... 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-fc403da2-e3f1-4e90-8232-6fb9b359a9f3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_invalid_uuid_or_name [0.101318s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1234~1234~1234 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-872e01a2-bda2-4053-854e-8a3c59fa816d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received 1234~1234~1234.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version [0.067559s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.151198s] ... 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-80fae459-6729-468a-b35b-95594ac223b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.4
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types <class 'NoneType'>, <class 'list'> for clean_steps: foo\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.057869s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.136386s] ... 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-09e438c2-030e-477b-a01d-2c207150325a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:10.025755+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_root.TestCheckVersions.test_check_version_too_high [0.043021s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.055609s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false [0.104228s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e997fa6-aab4-450c-91d3-0d8b25613bc7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version [0.060409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5b3619d0-84ea-4666-a68f-cb8a6cff4d15
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.196964s] ... 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-78264167-8d14-467e-8deb-dd2fec890891
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.070082s] ... 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.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.306930s] ... 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-a69e93fa-87cf-4426-b3bb-0428a7bf3e00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "9a178c36-5c54-470f-a04a-fe1d05d8ac05", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9a178c36-5c54-470f-a04a-fe1d05d8ac05", "rel": "self"}, {"href": "http://localhost/volume/connectors/9a178c36-5c54-470f-a04a-fe1d05d8ac05", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "58e523d0-f98a-44ed-b84c-1194b3db5607", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/58e523d0-f98a-44ed-b84c-1194b3db5607", "rel": "self"}, {"href": "http://localhost/volume/connectors/58e523d0-f98a-44ed-b84c-1194b3db5607", "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-8ed76b94-cb2a-4df9-9bcb-c389399a8ba6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "9a178c36-5c54-470f-a04a-fe1d05d8ac05", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9a178c36-5c54-470f-a04a-fe1d05d8ac05", "rel": "self"}, {"href": "http://localhost/volume/connectors/9a178c36-5c54-470f-a04a-fe1d05d8ac05", "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=9a178c36-5c54-470f-a04a-fe1d05d8ac05"}
{3} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_microversion_headers [0.096519s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.083220s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/detail WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-74f9e129-31ec-4a21-9866-2fe58a3a32dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for connector_uuid: detail\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy [0.168611s] ... 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-d6f5d79a-5ba2-4f3c-a772-6e48756ca060
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.134776s] ... 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-ba4520c0-39a9-4a4e-9b2c-581b84f20347
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version [0.120850s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8243524a-a3c1-44e7-83b5-125a6ff6d9a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.101074s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e52b3642-e20e-4d5b-ab76-30fef0d2f590
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": []}
{3} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.101234s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d62debf4-2e11-4ce4-9a7c-79aa5b95f380
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.115442s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c1c53ecb-e0d6-483e-a3a5-93e0c206c748
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "6d64c92d-9f9b-4918-a59d-e323378e7157", "connector_id": "test-value-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6d64c92d-9f9b-4918-a59d-e323378e7157", "rel": "self"}, {"href": "http://localhost/volume/connectors/6d64c92d-9f9b-4918-a59d-e323378e7157", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b3cdd526-f32a-441c-8716-b484ba59c704", "connector_id": "test-value-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/b3cdd526-f32a-441c-8716-b484ba59c704", "rel": "self"}, {"href": "http://localhost/volume/connectors/b3cdd526-f32a-441c-8716-b484ba59c704", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "01163ca1-2d10-468c-bac9-2104787a03cf", "connector_id": "test-value-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/01163ca1-2d10-468c-bac9-2104787a03cf", "rel": "self"}, {"href": "http://localhost/volume/connectors/01163ca1-2d10-468c-bac9-2104787a03cf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.165673s] ... 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-ee8d4dcc-7fd8-4296-8e9c-b51457f97c33
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.145055s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/volume/connectors WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token [0.063614s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data [0.055815s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.106268s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5dd5f5b3-ce8b-413b-9498-c1fb9a615c88
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "8be797a4-4c7f-4583-9162-9d65d176ea36", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/8be797a4-4c7f-4583-9162-9d65d176ea36", "rel": "self"}, {"href": "http://localhost/volume/connectors/8be797a4-4c7f-4583-9162-9d65d176ea36", "rel": "bookmark"}]}, {"uuid": "36ff5f5d-33f3-4c0f-a783-f09e00c2bfea", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/36ff5f5d-33f3-4c0f-a783-f09e00c2bfea", "rel": "self"}, {"href": "http://localhost/volume/connectors/36ff5f5d-33f3-4c0f-a783-f09e00c2bfea", "rel": "bookmark"}]}, {"uuid": "33528d0e-d96c-4ec6-9b14-953a9f20d429", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/33528d0e-d96c-4ec6-9b14-953a9f20d429", "rel": "self"}, {"href": "http://localhost/volume/connectors/33528d0e-d96c-4ec6-9b14-953a9f20d429", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.123061s] ... 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-d65c4b5a-9499-417b-8e4a-991856a55fca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps [0.057152s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.176766s] ... 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-b1223d01-a831-4107-badc-fb62b17d043d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.096595s] ... 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-021af516-5429-4a15-9608-65e8cddc4a40
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"connector_id": "test-connector_id-0", "links": [{"href": "http://localhost/v1/volume/connectors/89382c59-fe2f-43c7-bede-68eca296cf9f", "rel": "self"}, {"href": "http://localhost/volume/connectors/89382c59-fe2f-43c7-bede-68eca296cf9f", "rel": "bookmark"}]}, {"connector_id": "test-connector_id-1", "links": [{"href": "http://localhost/v1/volume/connectors/200a1625-b0dd-4458-8430-55b2c845680b", "rel": "self"}, {"href": "http://localhost/volume/connectors/200a1625-b0dd-4458-8430-55b2c845680b", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=200a1625-b0dd-4458-8430-55b2c845680b"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.066757s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.117892s] ... 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-a0f8d571-c6e4-4f59-8eb3-69175bb8162b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.31
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.085715s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.105052s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.173831s] ... 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-074b9c0e-ad83-4abf-a61a-44afa8d9b840
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.56
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.071495s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.165777s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-613a80c4-14ba-4fed-927d-2cf6404377c9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:10.913190+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_utils.TestCheckAllowFields.test_allow_inspect_abort [0.053167s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.144724s] ... 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-d23f8ab1-b5aa-4175-ae4b-ba541d7b1d16
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.048736s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.171590s] ... 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-a171290c-1481-408c-a380-e15ee203336b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.050977s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.101537s] ... 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-74c6b86c-9091-4de5-8e12-5b84032d86ff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:11.081334+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.042535s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.050211s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type [0.148153s] ... 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-5696a7dd-5114-4d7e-bd57-38b355df54c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types <class 'NoneType'>, <class 'dict'>, <class 'str'> for configdrive: ['aabb']\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.119222s] ... 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-1ae74f84-71b7-4493-8a25-0e38b393163e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.055182s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.278707s] ... 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-1bf7c2fe-32ec-4921-8462-d71ee5d0e4b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "2822a443-1b4f-40c4-9e44-1aa41242917e", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2822a443-1b4f-40c4-9e44-1aa41242917e", "rel": "self"}, {"href": "http://localhost/volume/targets/2822a443-1b4f-40c4-9e44-1aa41242917e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "96c304cd-d727-4368-8fee-adc523e8c2b2", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/96c304cd-d727-4368-8fee-adc523e8c2b2", "rel": "self"}, {"href": "http://localhost/volume/targets/96c304cd-d727-4368-8fee-adc523e8c2b2", "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-ecd8defe-5d65-4019-86db-149c024feec4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "2822a443-1b4f-40c4-9e44-1aa41242917e", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2822a443-1b4f-40c4-9e44-1aa41242917e", "rel": "self"}, {"href": "http://localhost/volume/targets/2822a443-1b4f-40c4-9e44-1aa41242917e", "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=2822a443-1b4f-40c4-9e44-1aa41242917e"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.064697s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.055928s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.127303s] ... 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-e3d35876-d4ff-4b26-a2b3-b67b8105d79f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.044370s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 [0.163117s] ... 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-f67bc554-b529-4fb2-b19f-fc4223e6e83c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.60
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid configdrive format: it is neither a JSON, nor a URL, nor a base64 string\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.065213s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.131028s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.065815s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.048458s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url [0.169299s] ... 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-94bbbddf-2803-4d58-8b2e-f9e29bc3bab9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.051896s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.056339s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history [0.170059s] ... 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-5b689ec5-1e27-4ae0-984b-b7f340dde020
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": []}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.054596s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps [0.184316s] ... 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-873fb42a-600a-45d9-bef6-3395117f22f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_utils.TestCheckAllowFields.test_allow_traits [0.050337s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.570806s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.046804s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.049682s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail [0.213732s] ... 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-31e6e5c0-d7da-4800-a4e0-836ef0846854
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "dd0366c4-66a4-4b07-88e7-4a71b507311d", "created_at": "2025-06-04T21:50:11.864180+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/dd0366c4-66a4-4b07-88e7-4a71b507311d", "rel": "self"}]}, {"uuid": "66d46056-ade1-4de6-a52a-c40545786678", "created_at": "2025-06-04T21:50:11.865189+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/66d46056-ade1-4de6-a52a-c40545786678", "rel": "self"}]}, {"uuid": "8092adb9-c2dd-49b6-9641-c33d54032701", "created_at": "2025-06-04T21:50:11.865905+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/8092adb9-c2dd-49b6-9641-c33d54032701", "rel": "self"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.144746s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/a6651025-e156-4966-8358-686a1cf83ff2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d7bccf0e-5a61-4991-b5b3-f457e0a8733e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a6651025-e156-4966-8358-686a1cf83ff2", "created_at": "2025-06-04T21:50:11.862792+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a6651025-e156-4966-8358-686a1cf83ff2", "rel": "self"}, {"href": "http://localhost/volume/connectors/a6651025-e156-4966-8358-686a1cf83ff2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/connectors/a6651025-e156-4966-8358-686a1cf83ff2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-05e4af1f-08b2-4175-a179-7a6caf217408
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a6651025-e156-4966-8358-686a1cf83ff2", "created_at": "2025-06-04T21:50:11.862792+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a6651025-e156-4966-8358-686a1cf83ff2", "rel": "self"}, {"href": "http://localhost/volume/connectors/a6651025-e156-4966-8358-686a1cf83ff2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /volume/connectors/a6651025-e156-4966-8358-686a1cf83ff2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-42b22673-6bdb-44a8-abec-1feea3bbc23c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a6651025-e156-4966-8358-686a1cf83ff2", "created_at": "2025-06-04T21:50:11.862792+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a6651025-e156-4966-8358-686a1cf83ff2", "rel": "self"}, {"href": "http://localhost/volume/connectors/a6651025-e156-4966-8358-686a1cf83ff2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail [0.167452s] ... 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-bc23dccd-a2db-4209-9e35-1d4a6a2feb7e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.69\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.061210s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.039160s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.045762s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.053638s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.151052s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a8b829b3-c273-4420-b2d3-a3c14c88ae78
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "bc254b68-850f-439b-bc41-c5527eb5d307", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/bc254b68-850f-439b-bc41-c5527eb5d307", "rel": "self"}, {"href": "http://localhost/volume/connectors/bc254b68-850f-439b-bc41-c5527eb5d307", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "ff9b3876-b129-4c1a-afdc-11b5ba8818be", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ff9b3876-b129-4c1a-afdc-11b5ba8818be", "rel": "self"}, {"href": "http://localhost/volume/connectors/ff9b3876-b129-4c1a-afdc-11b5ba8818be", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "851889bc-41ce-45cd-873a-eafe899f351d", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/851889bc-41ce-45cd-873a-eafe899f351d", "rel": "self"}, {"href": "http://localhost/volume/connectors/851889bc-41ce-45cd-873a-eafe899f351d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "25bfae33-f733-4b28-80ff-d37b44701e52", "connector_id": "test-connector_id-3", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/25bfae33-f733-4b28-80ff-d37b44701e52", "rel": "self"}, {"href": "http://localhost/volume/connectors/25bfae33-f733-4b28-80ff-d37b44701e52", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8ec83938-c4cf-4d50-a748-c52bffabf653", "connector_id": "test-connector_id-4", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8ec83938-c4cf-4d50-a748-c52bffabf653", "rel": "self"}, {"href": "http://localhost/volume/connectors/8ec83938-c4cf-4d50-a748-c52bffabf653", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries [0.186670s] ... 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-b6e86667-6bc7-47c7-866c-3954f776b9ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "8b5ed590-046c-4cd3-ad7f-f7e1866e8735", "created_at": "2025-06-04T21:50:12.071455+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8b5ed590-046c-4cd3-ad7f-f7e1866e8735", "rel": "self"}]}, {"uuid": "9bbe39de-4489-4fe5-8722-b4cb31809a04", "created_at": "2025-06-04T21:50:12.072499+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9bbe39de-4489-4fe5-8722-b4cb31809a04", "rel": "self"}]}, {"uuid": "1778dea9-6370-4395-8ace-c2cc2467419f", "created_at": "2025-06-04T21:50:12.073196+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1778dea9-6370-4395-8ace-c2cc2467419f", "rel": "self"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.040369s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.189689s] ... 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-96606009-f77a-4fa8-8fcd-070fa3a310b6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one [0.093725s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-712ce993-9284-41b9-b1c3-b316d27fbb05
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive [0.067746s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.067477s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.090669s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_with_sort [0.180523s] ... 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-fa0a21c2-4925-47e5-bcef-d277a0145e3e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "54042778-55a1-48cb-8d79-385b97205c96", "created_at": "2025-06-04T21:50:12.248217+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/54042778-55a1-48cb-8d79-385b97205c96", "rel": "self"}]}, {"uuid": "6f9f67b3-3ed4-4337-be94-93f854eedf7e", "created_at": "2025-06-04T21:50:12.247511+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6f9f67b3-3ed4-4337-be94-93f854eedf7e", "rel": "self"}]}, {"uuid": "b3e388d1-f8a1-4728-a1f9-c7fc929770cb", "created_at": "2025-06-04T21:50:12.246607+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b3e388d1-f8a1-4728-a1f9-c7fc929770cb", "rel": "self"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive [0.201651s] ... 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-4832a1b2-97c5-4957-9af9-6f57e92e01f2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.35
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.120307s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2405e3ce-a2cb-4e65-9e8b-34f9054df298
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "55c178d9-1a35-48f2-b2fb-47b1ce6c4699", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/55c178d9-1a35-48f2-b2fb-47b1ce6c4699", "rel": "self"}, {"href": "http://localhost/volume/connectors/55c178d9-1a35-48f2-b2fb-47b1ce6c4699", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "720687cf-39c3-4a06-9a0c-a5a053cfaa40", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/720687cf-39c3-4a06-9a0c-a5a053cfaa40", "rel": "self"}, {"href": "http://localhost/volume/connectors/720687cf-39c3-4a06-9a0c-a5a053cfaa40", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a08aaf06-72e2-4e9b-941c-2e5f40a444bf", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a08aaf06-72e2-4e9b-941c-2e5f40a444bf", "rel": "self"}, {"href": "http://localhost/volume/connectors/a08aaf06-72e2-4e9b-941c-2e5f40a444bf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.105533s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version [0.146013s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.088222s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4444049a-8a8c-4dfd-b8f7-365abc61dbef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/volume/connectors?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c5e3700e-fdf6-4b70-ab9c-0c173cee5ad3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.097466s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps [0.200858s] ... 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-7de87ed4-5e3f-4d00-af5f-10abbd1f17d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed [0.044026s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.109537s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f4b1cbf4-2943-47ae-8ea2-58657b7878f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "b1c81b38-4680-47f7-a78f-35f2945bb61b", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b1c81b38-4680-47f7-a78f-35f2945bb61b", "rel": "self"}, {"href": "http://localhost/volume/targets/b1c81b38-4680-47f7-a78f-35f2945bb61b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "843f8668-8ad6-40fd-a055-83a5d3899fd6", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/843f8668-8ad6-40fd-a055-83a5d3899fd6", "rel": "self"}, {"href": "http://localhost/volume/targets/843f8668-8ad6-40fd-a055-83a5d3899fd6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "587924a2-2ffa-4250-80c1-e13bcc2bd368", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/587924a2-2ffa-4250-80c1-e13bcc2bd368", "rel": "self"}, {"href": "http://localhost/volume/targets/587924a2-2ffa-4250-80c1-e13bcc2bd368", "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=587924a2-2ffa-4250-80c1-e13bcc2bd368"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps [0.053220s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty [0.052023s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.099036s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-39831773-0acd-468e-ab74-6d322d84503a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "b3da6867-9533-4bf2-a024-1a145cf777b9", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/b3da6867-9533-4bf2-a024-1a145cf777b9", "rel": "self"}, {"href": "http://localhost/volume/targets/b3da6867-9533-4bf2-a024-1a145cf777b9", "rel": "bookmark"}]}, {"uuid": "7b9c27ad-82b9-4555-9f40-056824a659a4", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/7b9c27ad-82b9-4555-9f40-056824a659a4", "rel": "self"}, {"href": "http://localhost/volume/targets/7b9c27ad-82b9-4555-9f40-056824a659a4", "rel": "bookmark"}]}, {"uuid": "f850b91b-6a46-4780-b369-ba504b6fc74b", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/f850b91b-6a46-4780-b369-ba504b6fc74b", "rel": "self"}, {"href": "http://localhost/volume/targets/f850b91b-6a46-4780-b369-ba504b6fc74b", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=f850b91b-6a46-4780-b369-ba504b6fc74b"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported [0.045055s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.170812s] ... 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-4c4af03f-0283-4b19-a372-d36577dd4a26
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination [0.272964s] ... 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-d632f55d-e6f0-402b-998d-9a99a034f4b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "1610f779-d9d8-4826-a1e2-bbf25e28031a", "created_at": "2025-06-04T21:50:12.595370+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1610f779-d9d8-4826-a1e2-bbf25e28031a", "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=1610f779-d9d8-4826-a1e2-bbf25e28031a"}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=1610f779-d9d8-4826-a1e2-bbf25e28031a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-201bde4b-4ee9-47fa-9f9c-5613028d4661
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "431a97e3-6258-474a-81b9-2b90e45c62c0", "created_at": "2025-06-04T21:50:12.596260+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/431a97e3-6258-474a-81b9-2b90e45c62c0", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2025-06-04T21:50:12Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=1610f779-d9d8-4826-a1e2-bbf25e28031a)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=431a97e3-6258-474a-81b9-2b90e45c62c0"}
GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=431a97e3-6258-474a-81b9-2b90e45c62c0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fe6144da-497d-432a-8617-32cda3625d66
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"history": [{"uuid": "0c7aae09-ca63-42e7-90c5-f08a4e7076a7", "created_at": "2025-06-04T21:50:12.596984+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0c7aae09-ca63-42e7-90c5-f08a4e7076a7", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2025-06-04T21:50:12Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=431a97e3-6258-474a-81b9-2b90e45c62c0)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=0c7aae09-ca63-42e7-90c5-f08a4e7076a7"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.107936s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e07ca76d-c938-4f90-a90b-cd1066b7a53f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "ca5db1de-9693-49b7-af4d-fed22cdf1e65", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/ca5db1de-9693-49b7-af4d-fed22cdf1e65", "rel": "self"}, {"href": "http://localhost/volume/targets/ca5db1de-9693-49b7-af4d-fed22cdf1e65", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9ea69403-9184-4cf8-a060-7b57973a3033", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9ea69403-9184-4cf8-a060-7b57973a3033", "rel": "self"}, {"href": "http://localhost/volume/targets/9ea69403-9184-4cf8-a060-7b57973a3033", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "b37192a7-a45d-4559-88a5-ff64850ce48c", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b37192a7-a45d-4559-88a5-ff64850ce48c", "rel": "self"}, {"href": "http://localhost/volume/targets/b37192a7-a45d-4559-88a5-ff64850ce48c", "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=b37192a7-a45d-4559-88a5-ff64850ce48c"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older [0.099922s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs [0.064895s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.105210s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=True&limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fa752121-84f5-42d2-9f7a-3daeabc6083b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "e5b8cbd0-2411-4818-83d8-61e1eab5a7fc", "created_at": "2025-06-04T21:50:12.863780+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/e5b8cbd0-2411-4818-83d8-61e1eab5a7fc", "rel": "self"}, {"href": "http://localhost/volume/targets/e5b8cbd0-2411-4818-83d8-61e1eab5a7fc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f7c40735-20fe-49d3-a621-84158207ce4b", "created_at": "2025-06-04T21:50:12.866727+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/f7c40735-20fe-49d3-a621-84158207ce4b", "rel": "self"}, {"href": "http://localhost/volume/targets/f7c40735-20fe-49d3-a621-84158207ce4b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "0a5c76aa-4052-4f5d-ad2c-a53c930f15c5", "created_at": "2025-06-04T21:50:12.867530+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/0a5c76aa-4052-4f5d-ad2c-a53c930f15c5", "rel": "self"}, {"href": "http://localhost/volume/targets/0a5c76aa-4052-4f5d-ad2c-a53c930f15c5", "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=0a5c76aa-4052-4f5d-ad2c-a53c930f15c5"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.187474s] ... 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-51c6c4c4-f40d-4f5e-9351-c9abc2ebc4f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item [0.171541s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f139af96-cdf3-4ed1-9d09-ad1a2296d4cf WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c8c3c5c3-da76-4b7e-8e16-ae8f203f13ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"uuid": "f139af96-cdf3-4ed1-9d09-ad1a2296d4cf", "created_at": "2025-06-04T21:50:12.879506+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/f139af96-cdf3-4ed1-9d09-ad1a2296d4cf", "rel": "self"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail [0.074039s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.091696s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a4e6378b-5dfe-4485-aeba-f33e0eb3ca17
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:12.975809+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_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.069889s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.153999s] ... 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-b7c0f7f2-ee19-477b-b56e-f78bd1eedff6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.085867s] ... 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-0686da30-f86d-4777-a96c-5e2deabe1a8a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found [0.185530s] ... 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-68e0ccae-a77f-420c-b6ec-ddcf7fb81e10
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.78
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node history record 52949728-59fc-4651-84c8-b0a16b469372 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.105193s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.074725s] ... 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-366252d3-0ba3-406a-9a58-5d44a4d12f60
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy [0.117846s] ... 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-fe400c69-a314-4089-8192-379043ce22e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.108119s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.120138s] ... 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-52bd7fe2-4346-44fb-a07c-ba7c9b07c8e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:13.241829+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version [0.180865s] ... 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\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_unprovision_after_service_failed [0.119498s] ... 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-7c8d4279-e82b-4e8b-b877-17bcc8894f85
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.075093s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.073601s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.128887s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c65cc176-fce1-4164-9399-51c1bcc78d5e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.055027s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_unprovision_in_service_wait [0.160201s] ... 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-2f3aa56e-f6df-4b20-847c-9a266f7de7c1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.058132s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.106530s] ... 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\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.063332s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid [0.111359s] ... 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-cfb5d801-4779-480a-99b2-32d13957dc4e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.069380s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.158347s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/detail WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-222aa736-8b8a-4c1f-8cf7-ce5557e6f900
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for target_uuid: detail\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.137125s] ... 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-4a493bf4-25ca-43b2-b54c-206282489a2f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.124847s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-230344fa-c68f-4013-bf83-039c8fcfe08d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": []}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.152662s] ... 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-209949d3-bd61-4f63-bd01-d8cb216f468c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.12
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.116911s] ... 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-bc126dfd-fdf0-4cf9-ac7b-7f7c02103e82
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.246252s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-078e2a91-8f5d-4478-9fcc-8d4c82ce3d56
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "2c42346d-9ffb-44c1-935f-04110e8911d9", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2c42346d-9ffb-44c1-935f-04110e8911d9", "rel": "self"}, {"href": "http://localhost/volume/targets/2c42346d-9ffb-44c1-935f-04110e8911d9", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "461ce827-8c80-483d-8164-cd4d93f91382", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/461ce827-8c80-483d-8164-cd4d93f91382", "rel": "self"}, {"href": "http://localhost/volume/targets/461ce827-8c80-483d-8164-cd4d93f91382", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5cca7ae9-6a02-4ea6-a1c5-3a4a01ab58a0", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5cca7ae9-6a02-4ea6-a1c5-3a4a01ab58a0", "rel": "self"}, {"href": "http://localhost/volume/targets/5cca7ae9-6a02-4ea6-a1c5-3a4a01ab58a0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory [0.802231s] ... 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-d924ae61-4461-4211-a1dc-a13585791cb8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.81
{"inventory": {"cpu": {"count": 1, "model_name": "qemu64", "architecture": "x86_64"}}, "plugin_data": {"disks": [{"name": "/dev/vda"}]}}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.100534s] ... 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-8330da31-a081-4eaa-b378-39ed7104c475
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory_no_inventory [0.104878s] ... 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-138c22d9-23ee-49f8-a6f5-380fc9cc4846
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.81
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node inventory record for node 1 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None [0.113037s] ... 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-3917274d-02c4-48e6-9df4-4034ec22153c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid secure_boot None requested for node. Allowed secure_boot states are: True, False) \", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_old_version [0.073069s] ... 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_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.248021s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-86c2a01d-16ac-4959-9db9-11ea9fc51bbc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "45f3e917-673f-4c33-a8ff-ec6a54c7aa8f", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/45f3e917-673f-4c33-a8ff-ec6a54c7aa8f", "rel": "self"}, {"href": "http://localhost/volume/targets/45f3e917-673f-4c33-a8ff-ec6a54c7aa8f", "rel": "bookmark"}]}, {"uuid": "4cc7ba3c-1eea-4366-b8f3-7306a351a865", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/4cc7ba3c-1eea-4366-b8f3-7306a351a865", "rel": "self"}, {"href": "http://localhost/volume/targets/4cc7ba3c-1eea-4366-b8f3-7306a351a865", "rel": "bookmark"}]}, {"uuid": "7c3c7a56-dfb5-4885-a483-64bed8341f63", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/7c3c7a56-dfb5-4885-a483-64bed8341f63", "rel": "self"}, {"href": "http://localhost/volume/targets/7c3c7a56-dfb5-4885-a483-64bed8341f63", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.190032s] ... 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-6f5672d2-3d5f-4283-accc-b3572450b842
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"boot_index": 0, "links": [{"href": "http://localhost/v1/volume/targets/bd68aa02-da46-42c4-8387-aacb5960cd12", "rel": "self"}, {"href": "http://localhost/volume/targets/bd68aa02-da46-42c4-8387-aacb5960cd12", "rel": "bookmark"}]}, {"boot_index": 1, "links": [{"href": "http://localhost/v1/volume/targets/8a715c3e-3ed9-43df-b37d-c229138ddab0", "rel": "self"}, {"href": "http://localhost/volume/targets/8a715c3e-3ed9-43df-b37d-c229138ddab0", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=8a715c3e-3ed9-43df-b37d-c229138ddab0"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_named_parent_node_succeeds [0.223912s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '36dd9ece-550f-4250-8305-83105db8bc1f', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/36dd9ece-550f-4250-8305-83105db8bc1f
Openstack-Request-Id: req-4d2be3bf-78e8-4d24-a936-477090ec0878
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "36dd9ece-550f-4250-8305-83105db8bc1f", "created_at": "2025-06-04T21:50:14.482549+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/36dd9ece-550f-4250-8305-83105db8bc1f", "rel": "self"}, {"href": "http://localhost/nodes/36dd9ece-550f-4250-8305-83105db8bc1f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/36dd9ece-550f-4250-8305-83105db8bc1f/ports", "rel": "self"}, {"href": "http://localhost/nodes/36dd9ece-550f-4250-8305-83105db8bc1f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/36dd9ece-550f-4250-8305-83105db8bc1f/states", "rel": "self"}, {"href": "http://localhost/nodes/36dd9ece-550f-4250-8305-83105db8bc1f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/36dd9ece-550f-4250-8305-83105db8bc1f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/36dd9ece-550f-4250-8305-83105db8bc1f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/36dd9ece-550f-4250-8305-83105db8bc1f/volume", "rel": "self"}, {"href": "http://localhost/nodes/36dd9ece-550f-4250-8305-83105db8bc1f/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.922333s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.078709s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.161848s] ... 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-73b428e9-a673-4644-8332-94f5a0d92ca6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node [0.198299s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '005efd95-a716-4d4b-908c-13633a61290f', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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/005efd95-a716-4d4b-908c-13633a61290f
Openstack-Request-Id: req-5d1bebd9-965e-40b3-9d9b-78f7597a732a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "005efd95-a716-4d4b-908c-13633a61290f", "created_at": "2025-06-04T21:50:14.671565+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/005efd95-a716-4d4b-908c-13633a61290f", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/005efd95-a716-4d4b-908c-13633a61290f/ports", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/005efd95-a716-4d4b-908c-13633a61290f/states", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/005efd95-a716-4d4b-908c-13633a61290f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/005efd95-a716-4d4b-908c-13633a61290f/volume", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f/volume", "rel": "bookmark"}]}
GET /v1/nodes/005efd95-a716-4d4b-908c-13633a61290f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bfb027ce-af9c-4646-85cc-20124fcfe800
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"uuid": "005efd95-a716-4d4b-908c-13633a61290f", "created_at": "2025-06-04T21:50:14.671565+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/005efd95-a716-4d4b-908c-13633a61290f", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/005efd95-a716-4d4b-908c-13633a61290f/ports", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/005efd95-a716-4d4b-908c-13633a61290f/states", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/005efd95-a716-4d4b-908c-13633a61290f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/005efd95-a716-4d4b-908c-13633a61290f/volume", "rel": "self"}, {"href": "http://localhost/nodes/005efd95-a716-4d4b-908c-13633a61290f/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.078259s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.073112s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.144609s] ... 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-c99380fa-e401-4c70-9c06-8c40a43899bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:14.769971+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo [0.584162s] ... 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-dbb3c94c-b2c6-43e9-8365-c12a2701110a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value 'boo!', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node_fail_wrong_version [0.127841s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'uuid': '2a72279e-95de-4e79-8d51-d84cedd33761', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', '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-8b4334ca-5b7a-41f2-8991-d3f151ea3c85
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.077939s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_nullstr [0.092110s] ... 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-f76bc880-0d54-46c4-9513-218757226e0c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.056059s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.059221s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.144402s] ... 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-d9bd03f1-680c-4c26-aff2-6bcd5652d567
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"boot_index": 0, "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.049703s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.082266s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver [0.102392s] ... 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-37445e9c-1e16-459a-a758-30653d76d7d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.055871s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.109467s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.058486s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver [0.097705s] ... 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-2d035258-0032-40f0-a7d4-04e4dfa883bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.099162s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.082459s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.055629s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero [0.101411s] ... 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-43823b02-8fde-448e-bf7e-09294e594a7d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.069685s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.050921s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.043353s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.228384s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/49da240c-5042-4ca8-adab-88801952db0f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-92dc8e63-7203-4d20-abca-0cde1c2042bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "49da240c-5042-4ca8-adab-88801952db0f", "created_at": "2025-06-04T21:50:15.161874+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/49da240c-5042-4ca8-adab-88801952db0f", "rel": "self"}, {"href": "http://localhost/volume/targets/49da240c-5042-4ca8-adab-88801952db0f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/targets/49da240c-5042-4ca8-adab-88801952db0f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5725714f-b891-40c0-b41b-211962d76dbb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "49da240c-5042-4ca8-adab-88801952db0f", "created_at": "2025-06-04T21:50:15.161874+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/49da240c-5042-4ca8-adab-88801952db0f", "rel": "self"}, {"href": "http://localhost/volume/targets/49da240c-5042-4ca8-adab-88801952db0f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /volume/targets/49da240c-5042-4ca8-adab-88801952db0f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bb7fc76f-b5f0-4f32-b39a-eedf1c1da2eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "49da240c-5042-4ca8-adab-88801952db0f", "created_at": "2025-06-04T21:50:15.161874+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/49da240c-5042-4ca8-adab-88801952db0f", "rel": "self"}, {"href": "http://localhost/volume/targets/49da240c-5042-4ca8-adab-88801952db0f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two [0.078764s] ... 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-624d2655-0300-421c-8b5f-5e06f0945b1d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '2', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.086098s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification [0.053550s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.077783s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver [0.097012s] ... 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-c9664dc6-07f3-46bb-ba5d-78ca98ccf058
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.75
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.067220s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.201667s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8ec5e9b9-394a-4f80-adbe-a7def57fc386
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "3b93b5ba-af23-49e3-b729-03ab93c0a773", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/3b93b5ba-af23-49e3-b729-03ab93c0a773", "rel": "self"}, {"href": "http://localhost/volume/targets/3b93b5ba-af23-49e3-b729-03ab93c0a773", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "69b3e53b-d516-4ad2-807a-be7a1d3cffed", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/69b3e53b-d516-4ad2-807a-be7a1d3cffed", "rel": "self"}, {"href": "http://localhost/volume/targets/69b3e53b-d516-4ad2-807a-be7a1d3cffed", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c5057435-7e29-4396-8f80-08fa812b5caf", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c5057435-7e29-4396-8f80-08fa812b5caf", "rel": "self"}, {"href": "http://localhost/volume/targets/c5057435-7e29-4396-8f80-08fa812b5caf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "dc416d23-ce31-4264-98d7-424887b41ebf", "boot_index": 3, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/dc416d23-ce31-4264-98d7-424887b41ebf", "rel": "self"}, {"href": "http://localhost/volume/targets/dc416d23-ce31-4264-98d7-424887b41ebf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "1c8115ed-c17d-4297-a7fe-1472e4d5b33f", "boot_index": 4, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1c8115ed-c17d-4297-a7fe-1472e4d5b33f", "rel": "self"}, {"href": "http://localhost/volume/targets/1c8115ed-c17d-4297-a7fe-1472e4d5b33f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver [0.118464s] ... 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-694ce096-7bd2-4ec0-97d2-0be959fa7988
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_all_by_conductor_groups [0.188803s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?conductor_groups=group_a,group_b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-25101680-3540-4765-a395-1e67c579e667
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "a658f4e7-0556-45e5-9500-29908a769506", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/a658f4e7-0556-45e5-9500-29908a769506", "rel": "self"}, {"href": "http://localhost/ports/a658f4e7-0556-45e5-9500-29908a769506", "rel": "bookmark"}]}, {"uuid": "d08734fd-2e74-4945-ba9a-14cd955a6269", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d08734fd-2e74-4945-ba9a-14cd955a6269", "rel": "self"}, {"href": "http://localhost/ports/d08734fd-2e74-4945-ba9a-14cd955a6269", "rel": "bookmark"}]}, {"uuid": "4f12ec6a-2f2d-4b82-ab75-f49938291847", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/4f12ec6a-2f2d-4b82-ab75-f49938291847", "rel": "self"}, {"href": "http://localhost/ports/4f12ec6a-2f2d-4b82-ab75-f49938291847", "rel": "bookmark"}]}, {"uuid": "dfb57fcc-a182-4fd1-a54c-4b2e0ef2e55b", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/dfb57fcc-a182-4fd1-a54c-4b2e0ef2e55b", "rel": "self"}, {"href": "http://localhost/ports/dfb57fcc-a182-4fd1-a54c-4b2e0ef2e55b", "rel": "bookmark"}]}, {"uuid": "bcee2502-485a-4f90-8689-4ec6bc6294bc", "address": "52:54:00:cf:2d:35", "links": [{"href": "http://localhost/v1/ports/bcee2502-485a-4f90-8689-4ec6bc6294bc", "rel": "self"}, {"href": "http://localhost/ports/bcee2502-485a-4f90-8689-4ec6bc6294bc", "rel": "bookmark"}]}]}
GET /v1/ports?conductor_groups=group_b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1a9d6761-b8ec-4cc0-89b1-e5f1d5c38f5b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "4f12ec6a-2f2d-4b82-ab75-f49938291847", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/4f12ec6a-2f2d-4b82-ab75-f49938291847", "rel": "self"}, {"href": "http://localhost/ports/4f12ec6a-2f2d-4b82-ab75-f49938291847", "rel": "bookmark"}]}, {"uuid": "dfb57fcc-a182-4fd1-a54c-4b2e0ef2e55b", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/dfb57fcc-a182-4fd1-a54c-4b2e0ef2e55b", "rel": "self"}, {"href": "http://localhost/ports/dfb57fcc-a182-4fd1-a54c-4b2e0ef2e55b", "rel": "bookmark"}]}, {"uuid": "bcee2502-485a-4f90-8689-4ec6bc6294bc", "address": "52:54:00:cf:2d:35", "links": [{"href": "http://localhost/v1/ports/bcee2502-485a-4f90-8689-4ec6bc6294bc", "rel": "self"}, {"href": "http://localhost/ports/bcee2502-485a-4f90-8689-4ec6bc6294bc", "rel": "bookmark"}]}]}
GET /v1/ports?conductor_groups=no_such_group WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c5519d25-790c-4d53-bccf-e0cea5ec3066
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs [0.088955s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one [0.098813s] ... 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-ee180631-9b23-4909-a5f3-2956aa1ac803
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.76
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail [0.079592s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.154883s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5db83837-b0f4-4b2e-8c75-96541447851b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_multi [0.128111s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?shard=shard1,shard2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5cd82066-e46a-4c6c-8f9d-5a190c6bbd61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"ports": [{"uuid": "b55c72c5-ebd0-49d4-a5e8-0b7fe3acdd83", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/b55c72c5-ebd0-49d4-a5e8-0b7fe3acdd83", "rel": "self"}, {"href": "http://localhost/ports/b55c72c5-ebd0-49d4-a5e8-0b7fe3acdd83", "rel": "bookmark"}]}, {"uuid": "1993f22e-eb82-4eb2-bd88-8a7e41c64f8a", "address": "ab:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/1993f22e-eb82-4eb2-bd88-8a7e41c64f8a", "rel": "self"}, {"href": "http://localhost/ports/1993f22e-eb82-4eb2-bd88-8a7e41c64f8a", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.083645s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service [0.135696s] ... 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-f03b3d38-6979-4e56-84b1-0d74d34817c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.87
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.104351s] ... 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.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single [0.102970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?shard=test_shard WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3c8d09d2-41bd-402d-a6dc-1be7e61c6274
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.82
{"ports": [{"uuid": "e3f8c549-9188-488b-a87f-d495b8b1861f", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/e3f8c549-9188-488b-a87f-d495b8b1861f", "rel": "self"}, {"href": "http://localhost/ports/e3f8c549-9188-488b-a87f-d495b8b1861f", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.071905s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single_fail_api_version [0.087890s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?shard=test_shard WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-d80a4ae3-1012-4b42-b3c2-53248d3c1c57
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.072410s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_args_required [0.122739s] ... 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-d5839c31-7b2a-44ae-b8cc-c7a5e4fb0800
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.87
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"service_steps\\\" is required when setting target provision state to service\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.185911s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-daeea31c-8ce0-4b5e-a006-9cb4325e8426
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "015f842e-9ac3-4548-b39c-1deb2c2dff49", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/015f842e-9ac3-4548-b39c-1deb2c2dff49", "rel": "self"}, {"href": "http://localhost/volume/targets/015f842e-9ac3-4548-b39c-1deb2c2dff49", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "11882da3-22e2-45a9-8063-9dc9506f5433", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/11882da3-22e2-45a9-8063-9dc9506f5433", "rel": "self"}, {"href": "http://localhost/volume/targets/11882da3-22e2-45a9-8063-9dc9506f5433", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "80fd7eb0-2a4a-4404-a9db-cb0f0560110b", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/80fd7eb0-2a4a-4404-a9db-cb0f0560110b", "rel": "self"}, {"href": "http://localhost/volume/targets/80fd7eb0-2a4a-4404-a9db-cb0f0560110b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.087910s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status [0.090320s] ... 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-cb41c71a-873f-42d6-b188-791f800fcf1d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.085264s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks [0.155760s] ... 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-d564186b-5ae2-4a97-97ae-3cf34d971769
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.117924s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c55f98c0-fcca-4efd-9073-9ee9a1566f25
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/volume/targets?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-cca01e7c-0313-45c1-8736-71e0db781478
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/volume/targets?sort_key=properties WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-b7dbcf28-6a2b-4de9-a230-05c1cdfc5d21
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url [0.101464s] ... 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-56b4e3b6-21c0-4688-8494-782c40b3c165
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.084294s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_file_url [0.095577s] ... 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-a14f64d9-f010-4055-aec2-bc2be755ee8e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks_unapproved [0.146103s] ... 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-70805e75-3cc9-4401-ba00-ed1d2be7401f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This runbook has not been approved for use on this node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Please ask an administrator to add it to your node traits.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.091071s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.139925s] ... 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-ad0c91a6-465d-46cd-822d-3235bf977f6a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:16.169627+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"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found [0.091956s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/61420fca-b8a7-4a0e-8653-0a3002c013f6 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7b2c6d01-eeb1-4161-97ab-01e9a3ca148f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 61420fca-b8a7-4a0e-8653-0a3002c013f6 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.072875s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.119435s] ... 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-44c2e665-bee0-40ef-88d7-2a9be767b273
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields [0.056246s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.137031s] ... 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-2416b55e-c593-4dc5-833a-881507b1f736
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok [0.095543s] ... 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-02ed5364-4fbd-4612-9af0-9c41cde0277e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links [0.054590s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.107390s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 204 No Content
Openstack-Request-Id: req-6a69d056-3214-4825-b73b-82b4d37e626a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status [0.085966s] ... 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-5062dc63-f68b-4be9-b571-33989339d33c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args [0.067993s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes [0.048020s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.160934s] ... 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-4e890920-3a08-4058-8e94-b6fa4b5c4258
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:16.440553+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.126392s] ... 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-23ad431d-3855-48d8-86d4-bef0f067ff73
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.046612s] ... ok
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.050795s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token [0.173618s] ... 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-a5fb8f43-2205-42a5-b1de-2324c037e329
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.057302s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.159929s] ... 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-e380fb35-72f4-4618-b74b-e3b8736b1093
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.155154s] ... 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-f97c2e92-001e-4c36-9ce9-fd09c7ec957d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.054394s] ... 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-c9df0bab-9a37-4337-80fc-68edeb4f43fb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid persistent: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca [0.142819s] ... 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-febcd804-16f8-492d-ba1f-36c8f6dfadba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values ... SKIPPED: For value storage
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.065518s] ... 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-14fa8719-d176-408a-b265-e86da315e398
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.040397s] ... 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-1a303dc4-19bc-4095-bfd3-609e067c3a78
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.180694s] ... 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-c1650a61-c5f6-4c6d-8fa1-1403f09adf38
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:16.797781+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version [0.126955s] ... 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-52a8d352-7edb-44ad-91b1-d169892f8b94
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request [0.068655s] ... 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-397a627e-4e14-4fcd-b657-9948a0fee4e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid enabled: Unrecognized value 'invalid-value', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node [0.175057s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/ab8ff009-c246-4624-a8ec-833d9c158e77 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-10f668e8-52d3-4d09-b0c2-ea916c16282c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ab8ff009-c246-4624-a8ec-833d9c158e77 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name [0.090622s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted
Openstack-Request-Id: req-dfb07f67-fae0-4da1-9dc2-54bef45c9f74
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.084498s] ... 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-0aab2335-85ba-4839-95d2-4cebc49efc78
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: enabled\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.162018s] ... 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-e2a3db54-9afc-449d-9730-701d0242921e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.069644s] ... 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-14e4f406-7cea-478d-8103-5bf36e7d3197
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_for_anaconda [0.105071s] ... 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-f72975b7-e481-4136-beab-fa2497e075c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node [0.153055s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/d2a0b6d0-cbcf-46b0-b2e6-a50934c33ac6 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-81049122-3975-4016-97fd-5adaa507585e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d2a0b6d0-cbcf-46b0-b2e6-a50934c33ac6 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.071306s] ... 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-b15b6e34-2c8b-4359-95b1-81f19b3a54f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json [0.092945s] ... 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-b1d34f3f-ac5c-40c9-968c-70c944809b92
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.185145s] ... 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-37d1f04b-1381-457a-9720-d552ad6fbaa1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'boot_index' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled [0.071529s] ... 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-3011609a-4222-418b-a561-4252ea73f43c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state [0.047188s] ... 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-95bb801a-8615-447d-85eb-7c4a128f995a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error [0.103532s] ... 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-40d5e748-fddb-4883-adf5-a8028b97a233
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.67
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node [0.173736s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/d85b072e-33bb-4301-bb1d-f3e347af8610 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-90a5ed09-9984-42af-bb4f-8f22ac34e014
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d85b072e-33bb-4301-bb1d-f3e347af8610 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value [0.058086s] ... 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-1e80045d-66ce-4c38-8e9e-d87f5d61dbb2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"error\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error [0.082355s] ... 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-44cfca25-f913-4a2c-b3a7-1ce79eb5a162
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.35
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported [0.097780s] ... 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-37171a6e-d2f2-4a40-929a-400a4dc20e12
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api [0.142175s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d60c671a-fd78-406a-9c6a-d180397460c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}]}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error [0.058053s] ... 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-ce05782b-b853-4f2c-9df0-de6a2b4cd563
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.71
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.288069s] ... 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-d6433763-ce40-4320-8ef8-52ead67f1a44
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:17.351776+00:00", "updated_at": "2025-06-04T21:50:17.359856+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-e1dd932a-4845-48ac-b120-177e4b727872
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:17.351776+00:00", "updated_at": "2025-06-04T21:50:17.359856+00:00", "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 [0.095766s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e6e091de-a68a-41e1-b9c3-d0682f300d63
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version [0.100058s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/600ebc20-27f9-47d1-a081-234be779e30d WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-aa701da8-d679-4871-b361-5c2bdf20d71b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.098201s] ... 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-686e6409-23aa-4f4f-ade1-98e03d5f2ede
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash [0.100703s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2916aeb5-475c-4121-a195-6e9d33ddd4e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.127190s] ... 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-208f9b12-d417-4bf4-af29-a6ffee4016bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json [0.093152s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1.json WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup [0.207069s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=dfb80bea-86d3-40a2-ba30-7e1e32a70eac WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-165ace2b-ca54-4d3e-b55c-064188736932
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "dfb80bea-86d3-40a2-ba30-7e1e32a70eac", "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/dfb80bea-86d3-40a2-ba30-7e1e32a70eac", "rel": "self"}, {"href": "http://localhost/nodes/dfb80bea-86d3-40a2-ba30-7e1e32a70eac", "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=dfb80bea-86d3-40a2-ba30-7e1e32a70eac WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c673c001-8c5b-4db7-bf1f-f7eca4c40cab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "dfb80bea-86d3-40a2-ba30-7e1e32a70eac", "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/dfb80bea-86d3-40a2-ba30-7e1e32a70eac", "rel": "self"}, {"href": "http://localhost/nodes/dfb80bea-86d3-40a2-ba30-7e1e32a70eac", "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=dfb80bea-86d3-40a2-ba30-7e1e32a70eac WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9ab7c9d1-e08a-4832-831d-94bb8007d179
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "dfb80bea-86d3-40a2-ba30-7e1e32a70eac", "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/dfb80bea-86d3-40a2-ba30-7e1e32a70eac", "rel": "self"}, {"href": "http://localho
    st/nodes/dfb80bea-86d3-40a2-ba30-7e1e32a70eac", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs [0.380968s] ... 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-967b59bc-28dc-459f-bb70-5160ac96fb4a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.129777s] ... 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-744e5791-e40d-4146-b464-24f7c9a4ecd9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning [0.059067s] ... 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-436f4d4a-b66d-477b-a85f-476dbd87b0df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{3} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml [0.119019s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1.xml WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.048824s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted
Openstack-Request-Id: req-86c1a581-6643-4b82-89e3-a24e97942db6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses [0.185757s] ... 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-7337816e-b7ad-48ae-86ae-f6f9763e5813
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "89d86b7c-2ba0-4241-8554-15fc13d0eae8", "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/89d86b7c-2ba0-4241-8554-15fc13d0eae8", "rel": "self"}, {"href": "http://localhost/nodes/89d86b7c-2ba0-4241-8554-15fc13d0eae8", "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_node.TestPut.test_set_node_maintenance_mode_by_name [0.047212s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted
Openstack-Request-Id: req-b86271b2-1596-4005-b8ba-8d4dabc5389c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.126540s] ... 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-b2d40a0d-966a-4e06-bddd-d204e0232460
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.047807s] ... 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-f2c2eb0d-539a-49d7-843b-b80a078bed86
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.043137s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {} GOT Response: 202 Accepted
Openstack-Request-Id: req-63c7ed7f-e2d5-46f1-90fe-716ff5fee5fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid [0.155363s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=f59fb2d0-f7be-413d-927c-0cf0897d14ea WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d86c847-9c0f-433a-a055-b97cf3b10033
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "f59fb2d0-f7be-413d-927c-0cf0897d14ea", "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/f59fb2d0-f7be-413d-927c-0cf0897d14ea", "rel": "self"}, {"href": "http://localhost/nodes/f59fb2d0-f7be-413d-927c-0cf0897d14ea", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "xyzabc", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.125079s] ... 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-6c478eeb-752a-4c6f-96ee-dcb48970a53e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.056560s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/node-39/maintenance WITH {} GOT Response: 202 Accepted
Openstack-Request-Id: req-e17fd9de-7b24-434b-bc07-c2861fee50b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold [0.084670s] ... 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-298b4964-63c2-4544-9d38-a6fa45cea9d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold_not_allowed [0.058403s] ... 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-24b0d5fd-c73f-4e4a-b536-fa13fac1219b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.84
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin [0.250548s] ... 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-62c00056-c769-4ff5-8976-7214fe6ac55c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold [0.052605s] ... 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-a9f737cd-d81d-4d53-96f3-c7da953a8947
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.85
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid [0.214672s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=0a41dae0-a9b1-4fce-b372-563fa1327805 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fa974661-3784-4c78-867d-d2ffdcca4c1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "0a41dae0-a9b1-4fce-b372-563fa1327805", "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/0a41dae0-a9b1-4fce-b372-563fa1327805", "rel": "self"}, {"href": "http://localhost/nodes/0a41dae0-a9b1-4fce-b372-563fa1327805", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold_not_allowed [0.055678s] ... 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-9217b2e0-7758-416c-b93d-3f97d36ba7c1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.84
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_servicehold [0.061316s] ... 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-1fc35d10-e060-4d25-b173-1f7e3ebf5acf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.86
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address [0.149593s] ... 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-b221b30d-e074-4616-971c-0558624a732c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "29a4d5e4-8ab7-429b-9a39-0e1d12e52a65", "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/29a4d5e4-8ab7-429b-9a39-0e1d12e52a65", "rel": "self"}, {"href": "http://localhost/nodes/29a4d5e4-8ab7-429b-9a39-0e1d12e52a65", "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_node.TestPut.test_unrescue_raises_error_before_1_38 [0.047804s] ... 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-337a9926-6a67-4c1b-8195-21f8d21f1d47
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.37
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links [0.069335s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fa9cf051-f412-4da1-ad14-5c0a2f5bf67e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "9b5b1f17-240f-4f36-b80b-553de750bd59", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/9b5b1f17-240f-4f36-b80b-553de750bd59", "rel": "self"}, {"href": "http://localhost/ports/9b5b1f17-240f-4f36-b80b-553de750bd59", "rel": "bookmark"}]}, {"uuid": "4c70b82c-60d1-4114-be81-3320336163c0", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/4c70b82c-60d1-4114-be81-3320336163c0", "rel": "self"}, {"href": "http://localhost/ports/4c70b82c-60d1-4114-be81-3320336163c0", "rel": "bookmark"}]}, {"uuid": "222ce8c2-fe5e-4c8d-bd4c-dd88269aa436", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/222ce8c2-fe5e-4c8d-bd4c-dd88269aa436", "rel": "self"}, {"href": "http://localhost/ports/222ce8c2-fe5e-4c8d-bd4c-dd88269aa436", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=222ce8c2-fe5e-4c8d-bd4c-dd88269aa436"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_invalid_input_addresses [0.150860s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d727e150-e0e7-4327-89ae-f90167ba2b9a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member [0.329433s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-23692639-50ae-4e6f-a95c-31f441f7cf85
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields [0.074030s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?fields=address,uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-423e023d-32bd-48fe-87d9-29546690c9ff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "e462e684-e9be-4935-a338-8c872a9ca584", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/e462e684-e9be-4935-a338-8c872a9ca584", "rel": "self"}, {"href": "http://localhost/ports/e462e684-e9be-4935-a338-8c872a9ca584", "rel": "bookmark"}]}, {"uuid": "2a8a7df0-6860-4fe4-94e8-edf86030be0c", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/2a8a7df0-6860-4fe4-94e8-edf86030be0c", "rel": "self"}, {"href": "http://localhost/ports/2a8a7df0-6860-4fe4-94e8-edf86030be0c", "rel": "bookmark"}]}, {"uuid": "1749c45f-69b7-4632-be74-6c46528f8c7e", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/1749c45f-69b7-4632-be74-6c46528f8c7e", "rel": "self"}, {"href": "http://localhost/ports/1749c45f-69b7-4632-be74-6c46528f8c7e", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=1749c45f-69b7-4632-be74-6c46528f8c7e"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit [0.066637s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-73f220ae-1846-468b-8b68-d131d697b407
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "9b8e158c-cb0d-4966-ac42-3400b2d8ba7b", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/9b8e158c-cb0d-4966-ac42-3400b2d8ba7b", "rel": "self"}, {"href": "http://localhost/ports/9b8e158c-cb0d-4966-ac42-3400b2d8ba7b", "rel": "bookmark"}]}, {"uuid": "84354e2d-6e19-4a89-8419-27f5118c64e1", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/84354e2d-6e19-4a89-8419-27f5118c64e1", "rel": "self"}, {"href": "http://localhost/ports/84354e2d-6e19-4a89-8419-27f5118c64e1", "rel": "bookmark"}]}, {"uuid": "954d44eb-e647-42ba-baef-336de7316ef7", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/954d44eb-e647-42ba-baef-336de7316ef7", "rel": "self"}, {"href": "http://localhost/ports/954d44eb-e647-42ba-baef-336de7316ef7", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=954d44eb-e647-42ba-baef-336de7316ef7"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_invalid_input_node_uuid [0.085258s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1fca94c1-dd1c-43fd-aaf8-5429be9180f0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup [0.108449s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=d1425359-4a9e-44bf-9ef1-ed3f9e38b16f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b411486e-586e-4a39-940a-05d0115945dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "d1425359-4a9e-44bf-9ef1-ed3f9e38b16f", "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/d1425359-4a9e-44bf-9ef1-ed3f9e38b16f", "rel": "self"}, {"href": "http://localhost/nodes/d1425359-4a9e-44bf-9ef1-ed3f9e38b16f", "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"]}}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail [0.125354s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-025550e9-5eae-435a-9f26-3fa59e0d9593
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:18.821915+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": true, "local_link_connection": {"switch_info": "switch", "switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Gig0/1"}, "physical_network": "physnet1", "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer [0.232315s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a6b34f7c-1a32-4867-a4dc-9adee561c03b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_not_found [0.091545s] ... 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-ea83e972-761f-4abc-a62d-752788e25329
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single [0.087457s] ... 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-f3aa636f-c516-40c7-98e0-29e06fa329af
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.867460s] ... 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-8dcf094a-a8c9-46aa-b8ad-852c874930bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:18.929177+00:00", "updated_at": "2025-06-04T21:50:18.938376+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.TestListPorts.test_detail_by_node_name_not_supported [0.084471s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?node=test-node WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-6f19fd79-d6c3-4179-800f-ef32dac345c8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided [0.119530s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6ab2e8b4-6726-40da-9c64-ca702b7b96b2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin [0.226010s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3e58f9a0-0fe2-4807-b6b4-1987fbb71c25
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:19.014558+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok [0.094651s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-903fb739-3519-4ed2-825d-3a1228165bc6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:19.143359+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_ramdisk.TestLookupScopedRBAC.test_old_api_version [0.096084s] ... 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-d5f28ec1-7452-4c49-90e7-ebcfd8945d0d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.228196s] ... 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-3a3eb00e-165f-4fea-8859-4192ab1cd155
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.117638s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-82ec2dbd-f60e-4c1e-ac5d-f32694208170
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:19.256595+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_info": "switch", "switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Gig0/1"}, "physical_network": "physnet1", "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup [0.124705s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=2c7bd603-86f7-4e6b-8983-ad1c220500b2 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1a11b059-8fb2-47ad-a54e-88ab611af178
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member [0.224314s] ... 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-e2e97009-10f0-409e-bf81-02f5af1d7f6a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.166550s] ... 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-71deabc8-4bd6-486a-a838-04bcabc437f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:19.361727+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.TestListPorts.test_detail_query_false [0.151334s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eb59247f-332a-4ba3-9d1d-df1984d70ffe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
GET /v1/ports?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-47b0a18f-8fe6-4705-94c5-5e3972057710
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name [0.182707s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/CUSTOM_DT1 GOT Response: 204 No Content
Openstack-Request-Id: req-2d7740d9-f626-4a4c-a345-6fdd7e981233
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.145618s] ... 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-d85eaea9-4955-46b6-a817-ac4a187847ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name_non_existent [0.127050s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/blah GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-1ae9c2a4-6c46-4926-89f4-d7e57f5df722
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook blah could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed [0.167906s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?sort_key=pxe_enabled WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8edf3eee-cc7e-4eb4-8be7-0c727fc17df8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "392af781-52dd-4c41-8899-064aa240fb08", "created_at": "2025-06-04T21:50:19.571423+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/392af781-52dd-4c41-8899-064aa240fb08", "rel": "self"}, {"href": "http://localhost/ports/392af781-52dd-4c41-8899-064aa240fb08", "rel": "bookmark"}], "portgroup_uuid": null}, {"uuid": "f6c46b3b-a0b7-439c-a115-1bd1c15e719a", "created_at": "2025-06-04T21:50:19.586121+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/f6c46b3b-a0b7-439c-a115-1bd1c15e719a", "rel": "self"}, {"href": "http://localhost/ports/f6c46b3b-a0b7-439c-a115-1bd1c15e719a", "rel": "bookmark"}], "portgroup_uuid": null}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer [0.291432s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b0668b3d-e4ff-43e8-8f17-e84090a25427
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:19.503816+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed [0.075397s] ... 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-6ac58e98-6196-432f-8caf-5b8f3729998b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.147961s] ... 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-f7265414-7c07-47b9-87f9-a149f545126b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_uuid [0.127951s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/6367d08f-27ac-4395-ad95-18e3376d1dc3 GOT Response: 204 No Content
Openstack-Request-Id: req-5e6f6a4d-e5a9-4a1b-abc2-9d140f28ffa3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.088724s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-20c8e059-20e4-47f1-897d-995a305aaccd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular [0.130046s] ... 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-5dc69250-fe85-4b52-9fb5-7f929c2ed006
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:19.800561+00:00", "updated_at": null, "boot_index": 100, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields [0.108856s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=False&fields=internal_info WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-48bddcde-d5c5-454e-b894-9d22c476204f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin [0.253888s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d631f0fb-8471-43ad-8a21-f7a4737164da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:19.786003+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.084720s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?detail=True WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-6a734fb8-d5df-48e3-b3e7-898d2896edb6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid [0.157772s] ... 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-a8301045-e17e-4663-9d37-fbfbf5b7f938
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:19.937157+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.TestListPorts.test_detail_with_incorrect_api_usage [0.071302s] ... 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-4c19a702-0c11-4c15-85fc-45a29fcae457
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.090878s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty [0.081956s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d31afa8-a8c0-4b7e-a974-dca3d756fcc1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin [0.233626s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4acf8c46-1167-4668-b9a9-c8a172bace2f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "c07e4b1e-e9a1-4285-aa7e-2944d62b8862", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.115857s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/7b6f94a5-4a32-4ec3-b7e4-1678a9687cf5 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c9676afe-ff1b-4122-914e-8a37675768dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 7b6f94a5-4a32-4ec3-b7e4-1678a9687cf5 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin [0.162864s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6d957ffd-1e06-4b3d-93ce-5dc28a174a8b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": [{"uuid": "fd6fe49e-f6cc-44e1-bfdf-18c0b0616da0", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/fd6fe49e-f6cc-44e1-bfdf-18c0b0616da0", "rel": "self"}, {"href": "http://localhost/ports/fd6fe49e-f6cc-44e1-bfdf-18c0b0616da0", "rel": "bookmark"}]}, {"uuid": "04e22e70-422b-474c-9564-b2d23a3f4f6d", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/04e22e70-422b-474c-9564-b2d23a3f4f6d", "rel": "self"}, {"href": "http://localhost/ports/04e22e70-422b-474c-9564-b2d23a3f4f6d", "rel": "bookmark"}]}, {"uuid": "c6070557-6c85-4c3c-a642-f0225a91b382", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/c6070557-6c85-4c3c-a642-f0225a91b382", "rel": "self"}, {"href": "http://localhost/ports/c6070557-6c85-4c3c-a642-f0225a91b382", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.138125s] ... 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-f1b4e5c5-30e7-430d-af59-8588f3f8f404
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0c3da480-3e29-4e86-ac8d-b717e0013a4b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin [0.200583s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-76461319-3413-4c60-af75-e3b848cd0086
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "604b9eb5-8e4a-42ba-8840-ec93f967bfde", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_invalid_api_version [0.705242s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/0efb9603-c721-4f19-a01a-ef1bb8aac85f 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.TestListPorts.test_get_all_by_node_name_non_admin_no_match [0.161412s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3a1d10f9-9d9a-44f1-80af-6ea6a31d90a8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": []}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.146770s] ... 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-5baf45fb-47af-44ee-a548-9c14006df900
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:20.482290+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-85fb60b0-ad27-41b1-8249-5873a1593dab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:20.482290+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"}
{2} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_old_api_version [0.081051s] ... 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\"}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin [0.206381s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a2e37f5-02f9-47af-ae47-da135986ce50
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:20.469119+00:00", "updated_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-06-04T21:50:20.470789+00:00", "updated_at": "2025-06-04T21:50:20.481439+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": "b1910e55-7284-49fc-971b-8eb2ed7f4eb8", "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": "b1910e55-7284-49fc-971b-8eb2ed7f4eb8", "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-06-04T21:50:20.531826+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "
    rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported [0.104142s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-77abbec2-ac81-4a28-aa1a-ed99f876669c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_empty [0.072006s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4307b16b-5c3c-49a2-8b59-0cfc4e08fa66
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"shards": []}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.119896s] ... 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-437406fd-d0ec-439f-a717-52baac8900ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one [0.099413s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-32568b3c-5c93-48ee-b4f6-6ba6c99a2414
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok [0.165053s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a9e18bd0-cc74-437d-88d8-fbe993c3f5dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.5
{"ports": [{"uuid": "9e12d6c2-81bc-4aff-9f6c-4e55ffe1978b", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/9e12d6c2-81bc-4aff-9f6c-4e55ffe1978b", "rel": "self"}, {"href": "http://localhost/ports/9e12d6c2-81bc-4aff-9f6c-4e55ffe1978b", "rel": "bookmark"}]}, {"uuid": "e302b95a-6550-48eb-9931-e91fb61f4d55", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/e302b95a-6550-48eb-9931-e91fb61f4d55", "rel": "self"}, {"href": "http://localhost/ports/e302b95a-6550-48eb-9931-e91fb61f4d55", "rel": "bookmark"}]}, {"uuid": "52026c7e-7fa3-4378-8b5c-b5873339ba9c", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/52026c7e-7fa3-4378-8b5c-b5873339ba9c", "rel": "self"}, {"href": "http://localhost/ports/52026c7e-7fa3-4378-8b5c-b5873339ba9c", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member [0.200158s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f4fb8c85-8160-462d-b985-5c833ae7d9ad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.161253s] ... 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/f0c31125-993b-42bf-bbfb-6cc141505e56
Openstack-Request-Id: req-a822691c-f1a6-4b76-aa46-0de527d24d1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f0c31125-993b-42bf-bbfb-6cc141505e56", "created_at": "2025-06-04T21:50:20.755656+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/f0c31125-993b-42bf-bbfb-6cc141505e56", "rel": "self"}, {"href": "http://localhost/volume/targets/f0c31125-993b-42bf-bbfb-6cc141505e56", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/targets/f0c31125-993b-42bf-bbfb-6cc141505e56 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c2967cea-77b1-4310-9c41-165330f79312
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f0c31125-993b-42bf-bbfb-6cc141505e56", "created_at": "2025-06-04T21:50:20.755656+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/f0c31125-993b-42bf-bbfb-6cc141505e56", "rel": "self"}, {"href": "http://localhost/volume/targets/f0c31125-993b-42bf-bbfb-6cc141505e56", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one_wrong_version [0.095037s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-93e2345b-c994-40ec-830d-8c9e0148133c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow shards\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_post [0.068603s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/shards WITH {} GOT Response: 405 Method Not Allowed
Allow: GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.091804s] ... 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-f675450b-4a9e-4b12-b761-1025a573cb37
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:20.848239+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_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.082067s] ... 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.077990s] ... 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-2766dc4c-e6b2-44de-896f-a0699829825d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 123 is not of type 'string'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_put [0.096681s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/shards WITH {} GOT Response: 405 Method Not Allowed
Allow: GET
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.156388s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail?portgroup=fooname WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ed2878e8-e079-4de8-bafd-1279e96ae443
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:20.966933+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.092076s] ... 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-36c42c0b-7fbf-4dda-8b5c-c0ea6444a52d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_wrong_version [0.094820s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-147a8a9a-246c-4e81-a909-b2443f871127
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.80
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow shards\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid [0.105090s] ... 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-528f19bc-007e-46e7-8972-299699bb884a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:21.110503+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.107634s] ... 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-26bca07d-e29f-4b55-ba94-41c32071a6fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'volume_type' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.077597s] ... 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-67618462-e58c-4187-ab20-637b4f36d9fd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_multiple_shards [0.172376s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-18b2ea7f-990d-4c29-b308-59c09c5c8d02
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"shards": [{"name": "shard5", "count": 5}, {"name": "shard4", "count": 4}, {"name": "shard3", "count": 3}, {"name": "shard2", "count": 2}, {"name": "shard1", "count": 1}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.096618s] ... 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-e299d6cf-7942-41de-98ba-349403169006
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin [0.105702s] ... 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-5f859709-1a3e-4370-b047-e4d834860c44
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:21.299642+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}]}
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.089780s] ... 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-4576bfd4-b00c-43f2-b39a-0201cf2864c1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_nodes_but_no_shards [0.120616s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b7a184d9-59ca-4b89-8149-a9ef3f4cd612
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"shards": [{"name": "None", "count": 5}]}
{2} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_one_shard [0.096286s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4e5d5040-c5ba-4490-8ab8-558f58b3094b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"shards": [{"name": "shard1", "count": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match [0.133203s] ... 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-72c57d08-4199-427a-a47a-83ae0d64be2f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"ports": []}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.049325s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.153725s] ... 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-7fe51e70-80c5-4ec0-8068-75a90c4e5c75
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:21.449818+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-a772e5ec-841b-4997-99b9-7f50609f9052
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:21.449818+00:00", "updated_at": null, "boot_index": 0, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.052071s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.105000s] ... 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-63fabfe8-75eb-41cc-a2a8-01fbd34d6f9b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.061900s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer [0.838788s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-708cb0cb-ed26-465b-8f83-7c911e0abd55
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:21.507559+00:00", "updated_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-06-04T21:50:21.508852+00:00", "updated_at": "2025-06-04T21:50:21.517711+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": "1b6169be-205a-4b02-a08a-b64e5034ebe9", "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": "1b6169be-205a-4b02-a08a-b64e5034ebe9", "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-06-04T21:50:21.562027+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "
    rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.044752s] ... ok
{1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.172738s] ... 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-ef65ec37-f34e-40f7-9fce-d9449dd4caa3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:21.661574+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.TestListPorts.test_get_collection_custom_fields [0.128315s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?fields=uuid,extra WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5422cceb-ebb1-4978-a6c0-b74094a37963
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "23547740-fa4a-4d8c-9961-8a2a25169761", "extra": {}, "links": [{"href": "http://localhost/v1/ports/23547740-fa4a-4d8c-9961-8a2a25169761", "rel": "self"}, {"href": "http://localhost/ports/23547740-fa4a-4d8c-9961-8a2a25169761", "rel": "bookmark"}]}, {"uuid": "1380fcf9-aa34-4d7c-b3f9-d0bf07a990b3", "extra": {}, "links": [{"href": "http://localhost/v1/ports/1380fcf9-aa34-4d7c-b3f9-d0bf07a990b3", "rel": "self"}, {"href": "http://localhost/ports/1380fcf9-aa34-4d7c-b3f9-d0bf07a990b3", "rel": "bookmark"}]}, {"uuid": "d2e01bf9-046c-4eaa-ab72-a643a77a90f5", "extra": {}, "links": [{"href": "http://localhost/v1/ports/d2e01bf9-046c-4eaa-ab72-a643a77a90f5", "rel": "self"}, {"href": "http://localhost/ports/d2e01bf9-046c-4eaa-ab72-a643a77a90f5", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_complex_path [0.052653s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_slash [0.058868s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.125428s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_tilde [0.046867s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin [0.202401s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7317caf4-8dd1-4545-bc0b-e2916fcdfa87
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:21.713824+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.148950s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?fields=address&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-425688e2-e6de-4e1b-a596-deb7d153b54d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/53c0dd46-4983-4d5c-9a08-fd42a379aad0", "rel": "self"}, {"href": "http://localhost/ports/53c0dd46-4983-4d5c-9a08-fd42a379aad0", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/81914357-4297-4240-994b-c7df4fd6a383", "rel": "self"}, {"href": "http://localhost/ports/81914357-4297-4240-994b-c7df4fd6a383", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=81914357-4297-4240-994b-c7df4fd6a383"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_incomplete_escape [0.060757s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.095795s] ... 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_utils.TestApiUtils.test_apply_jsonpatch_with_invalid_escape_sequence [0.052146s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_slash [0.049107s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.133445s] ... 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-4db24678-fc25-478b-8078-9a0f05f961c9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member [0.168624s] ... 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-2a41ddef-bc6a-4cb9-a1ab-14ce46e2f46f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_tilde [0.044839s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info [0.127107s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.054568s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.049410s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.057128s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer [0.214295s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-048a56a9-5f97-415d-9404-10534e302c1e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:50:22.095597+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.171498s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.058791s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.042633s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.043615s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin [0.172991s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.056604s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.431365s] ... 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-e9027a32-9e3e-4703-8bb3-3cde35333116
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.042600s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.268522s] ... 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-40f4cd35-d8fb-45d1-b926-3d9bd9a69ae6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.039750s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic [0.098460s] ... 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-1b4efe2b-1c4c-473f-a66f-c1be5a64de81
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a95a1832-bc8f-41c7-b966-2831e894787c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.53
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "is_smartnic": true, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.062478s] ... ok
{1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.160104s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.042763s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network [0.064717s] ... 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-40a8de56-cf28-4f8d-a3d3-75574df6ebaa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b0cacea3-70d6-4941-9f7a-3fd34d040045
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.055122s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.047119s] ... 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-6b2218ee-4689-462b-9062-18a37b3bb576
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.115645s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member [0.218417s] ... 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-39a06132-7c8d-414b-8f8e-1b69b47acf0b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one [0.059495s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9b53ffd8-6c7c-4731-a51d-b8cbe0436ab9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:22.709336+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_is_path_updated_success [0.075871s] ... ok
{1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.058740s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.043805s] ... 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-5286fb9a-d152-4a0c-b829-87a2dfdad289
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"address": "52:54:00:cf:2d:31", "extra": {}, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.072010s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields [0.094018s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.108507s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0c84ebe3-b2a9-4a43-8435-cf817e588fe0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:22.859259+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.072881s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields [0.067134s] ... ok
{1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.056937s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-97da8111-fef5-4b27-a4eb-da581f5050f3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.22
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_special_fields [0.096785s] ... ok
{1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root [0.066554s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9707af81-7887-4bc8-9b97-bd528a14e440
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.280688s] ... 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-eea40071-3104-4a10-ac2d-f7106076735a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.056719s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-542d8ae6-fff1-4c89-9cd0-f9261a98652c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.32
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema [0.072211s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_ports_by_description [0.206698s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?description_contains=cat WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-afc35914-88e6-41d0-94a4-8d2f11dec05e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "affc0c44-2b52-4eab-a3cb-042b60ddc6ec", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/affc0c44-2b52-4eab-a3cb-042b60ddc6ec", "rel": "self"}, {"href": "http://localhost/ports/affc0c44-2b52-4eab-a3cb-042b60ddc6ec", "rel": "bookmark"}]}]}
GET /v1/ports?description_contains=dog WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-95d4f35d-8f5b-4221-86c3-5d9eaf229533
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "8d1d66cb-dfeb-496e-846d-b8a721e8e224", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/8d1d66cb-dfeb-496e-846d-b8a721e8e224", "rel": "self"}, {"href": "http://localhost/ports/8d1d66cb-dfeb-496e-846d-b8a721e8e224", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root [0.053085s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4cdd4f00-d4d0-4652-8083-8c77e7e53f00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict [0.065293s] ... ok
{1} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_datetime_format [0.049349s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.075691s] ... ok
{1} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_uuid_format [0.052475s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.224996s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-5315d84a-21d5-4b53-9b75-d2040d40af0e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.049790s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.181902s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fdc8fe5f-4b47-48f7-81b3-0c6cdaf92a29
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:23.196838+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-8ce05f62-6d40-4db2-9c58-c479e072d39b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.19
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:23.196838+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"}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found [0.047606s] ... ok
{1} ironic.tests.unit.command.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.122660s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation [0.055602s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member [0.159473s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3ce46db1-785d-4126-b821-eeb29ceb094c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_latin1 [0.062836s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found [0.047628s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm [0.046546s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.203716s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fce77c55-fe08-4fe9-ade2-27dac44587fb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:23.381675+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-906d2929-4efb-4407-8e85-750eef928926
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:23.381675+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve [0.061235s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm_both [0.069448s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy [0.054330s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden [0.044693s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_ok [0.061249s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.192227s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3c6a1486-6a74-46dd-b884-2b21c7428cfe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project [0.047026s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.183221s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4bd35405-3e4a-4ae8-a8a6-f8fa86c29490
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:23.581149+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-ef44fe67-b2d2-4c50-bcd0-9a0f5de4a879
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.53
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:23.581149+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin [0.053114s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch [0.046921s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin [0.151366s] ... 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-75e1299c-2fbd-4792-bc45-86f9fc125086
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner [0.039233s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve [0.038818s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port [0.024520s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden [0.048617s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_ovn_vtep [0.224986s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9b557a84-dba5-4a53-9d6b-466c4369004e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:23.783375+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-cb7f79bf-5317-4cc5-859c-bec21dacd4c5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.89
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:23.783375+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-ca78c319-212c-4645-8563-36d571fd3ab0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:23.783375+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"port_id": "42", "vtep-logical-switch": "lswitch", "vtep-physical-switch": "jswitch"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions [0.330643s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member [0.176836s] ... 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-01fcb764-bed9-4ac6-9d82-49a79339246e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound [0.055655s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.040431s] ... ok
{1} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.081031s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum [0.022493s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_file_not_found [0.020648s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.060461s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_hashlib_not_supports_algo [0.041322s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.185648s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-04782fe7-98f6-4ab8-8045-b488f4513010
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:24.000420+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-628d7d12-82e0-4fd7-ba07-ad3e8c84b17c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:24.000420+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.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.046950s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer [0.171248s] ... 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-bee1f309-4a3a-4957-a109-73eea7f7aed5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mismatch [0.042147s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case [0.021431s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.059359s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case_delimited [0.020487s] ... ok
{1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_md5 [0.020603s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.051027s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary [0.026022s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.151729s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7da38075-e506-4164-b2cd-d55b8c205ab5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.34
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:24.201615+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_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.056374s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin [0.166803s] ... 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-93214676-6623-4fe2-8107-a1b75dd7a4a8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.039569s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.056482s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid [0.044599s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member [0.172104s] ... 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-69b8f89c-1d03-42ad-9246-ebf59963f10b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.208551s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0cdfc4eb-1622-4138-b443-a28d598e3ec7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:24.374870+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-3839cad0-07e7-4a56-84c3-2344f7816bda
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:24.374870+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid [0.063087s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found [0.037017s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id [0.067139s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found [0.064779s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links [0.181868s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/67343f8b-5383-4bf7-afcf-9a482e21ca1d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2028f57d-61dc-430c-8617-455c8e757bec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "67343f8b-5383-4bf7-afcf-9a482e21ca1d", "created_at": "2025-06-04T21:50:24.550861+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/67343f8b-5383-4bf7-afcf-9a482e21ca1d", "rel": "self"}, {"href": "http://localhost/ports/67343f8b-5383-4bf7-afcf-9a482e21ca1d", "rel": "bookmark"}]}
GET /v1/ports/67343f8b-5383-4bf7-afcf-9a482e21ca1d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-25be0178-76c6-46c2-815a-809e9b7484a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "67343f8b-5383-4bf7-afcf-9a482e21ca1d", "created_at": "2025-06-04T21:50:24.550861+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/67343f8b-5383-4bf7-afcf-9a482e21ca1d", "rel": "self"}, {"href": "http://localhost/ports/67343f8b-5383-4bf7-afcf-9a482e21ca1d", "rel": "bookmark"}]}
GET /ports/67343f8b-5383-4bf7-afcf-9a482e21ca1d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4835b1fa-96a5-4c89-902b-03bee4abbd0d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "67343f8b-5383-4bf7-afcf-9a482e21ca1d", "created_at": "2025-06-04T21:50:24.550861+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/67343f8b-5383-4bf7-afcf-9a482e21ca1d", "rel": "self"}, {"href": "http://localhost/ports/67343f8b-5383-4bf7-afcf-9a482e21ca1d", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer [0.173951s] ... 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-a31d4a0f-add7-4c1e-9f05-3c88822ea3d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.042815s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.521132s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.057966s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached [0.058450s] ... ok
{1} ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available [0.074409s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.216758s] ... 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-106d8eae-ba9f-449b-8073-1d8958cc6830
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.233183s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/3d938262-7309-4248-ae2b-6000f36c5542 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0dba531a-2bf0-4116-91fa-08f68f076e16
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "3d938262-7309-4248-ae2b-6000f36c5542", "created_at": "2025-06-04T21:50:24.764947+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/3d938262-7309-4248-ae2b-6000f36c5542", "rel": "self"}, {"href": "http://foo/ports/3d938262-7309-4248-ae2b-6000f36c5542", "rel": "bookmark"}]}
GET /v1/ports/3d938262-7309-4248-ae2b-6000f36c5542 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7de56f99-0d3a-422a-a812-9f8227bc63e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "3d938262-7309-4248-ae2b-6000f36c5542", "created_at": "2025-06-04T21:50:24.764947+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/3d938262-7309-4248-ae2b-6000f36c5542", "rel": "self"}, {"href": "http://foo/ports/3d938262-7309-4248-ae2b-6000f36c5542", "rel": "bookmark"}]}
GET /ports/3d938262-7309-4248-ae2b-6000f36c5542 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-52420b08-40e4-4c4b-b8ae-eeed9a3bad3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "3d938262-7309-4248-ae2b-6000f36c5542", "created_at": "2025-06-04T21:50:24.764947+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/3d938262-7309-4248-ae2b-6000f36c5542", "rel": "self"}, {"href": "http://foo/ports/3d938262-7309-4248-ae2b-6000f36c5542", "rel": "bookmark"}]}
{1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.053536s] ... ok
{1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context_with_environ [0.041750s] ... ok
{1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.061111s] ... ok
{1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server [0.055576s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden [0.189299s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5e91833c-966a-4a62-8e41-d1489f83b9d8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member [0.272461s] ... 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-649782bd-603e-43d4-bd03-3f22eeedd823
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.077343s] ... ok
{1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.081154s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project [0.176989s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6a75be86-c468-4db3-9c47-b0c42ecf16a5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info [0.068340s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.218375s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d331cd16-9e1c-42c9-a732-b081ce7fa37c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values [0.080524s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many [0.218197s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-174528da-a944-4681-95da-9096d298225e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "82f86d0d-a035-4e96-b508-2673fb508251", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/82f86d0d-a035-4e96-b508-2673fb508251", "rel": "self"}, {"href": "http://localhost/ports/82f86d0d-a035-4e96-b508-2673fb508251", "rel": "bookmark"}]}, {"uuid": "c71d78f7-7af0-49de-99bf-c6409113849b", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/c71d78f7-7af0-49de-99bf-c6409113849b", "rel": "self"}, {"href": "http://localhost/ports/c71d78f7-7af0-49de-99bf-c6409113849b", "rel": "bookmark"}]}, {"uuid": "72cb46d3-df3f-42f4-b2e6-13eaf7234375", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/72cb46d3-df3f-42f4-b2e6-13eaf7234375", "rel": "self"}, {"href": "http://localhost/ports/72cb46d3-df3f-42f4-b2e6-13eaf7234375", "rel": "bookmark"}]}, {"uuid": "bb5c0a7f-aeb1-42a4-811f-22d0d1d3494c", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/bb5c0a7f-aeb1-42a4-811f-22d0d1d3494c", "rel": "self"}, {"href": "http://localhost/ports/bb5c0a7f-aeb1-42a4-811f-22d0d1d3494c", "rel": "bookmark"}]}, {"uuid": "163020ba-d11c-4fbb-baaa-b755e686c252", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/163020ba-d11c-4fbb-baaa-b755e686c252", "rel": "self"}, {"href": "http://localhost/ports/163020ba-d11c-4fbb-baaa-b755e686c252", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.110285s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.097164s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.232744s] ... 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-3962b920-9b49-4bab-9b4b-479cf8e78e39
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.908823s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin [0.200696s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cb336195-98b5-4fbd-a53e-73dac96dd838
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "ba816e8f-7a3c-4453-9747-f00050fd64c4", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/ba816e8f-7a3c-4453-9747-f00050fd64c4", "rel": "self"}, {"href": "http://localhost/ports/ba816e8f-7a3c-4453-9747-f00050fd64c4", "rel": "bookmark"}]}, {"uuid": "c720329a-6425-491b-bfec-9fa7623a2399", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/c720329a-6425-491b-bfec-9fa7623a2399", "rel": "self"}, {"href": "http://localhost/ports/c720329a-6425-491b-bfec-9fa7623a2399", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override [0.106475s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.095607s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.089074s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.138502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-121e2ed9-d35c-4beb-9621-0d07b100f3ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.093307s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override [0.096943s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.069616s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.324316s] ... 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-93962698-27cf-467c-a763-fcd59923345a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.167420s] ... 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-f206fe7a-7215-4530-84d8-99c6c1cb591f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "62e959c1-915e-4a01-bfd9-76c593017706", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/62e959c1-915e-4a01-bfd9-76c593017706", "rel": "self"}, {"href": "http://localhost/ports/62e959c1-915e-4a01-bfd9-76c593017706", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.096470s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.093538s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.077830s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.082193s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.095352s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-642646f4-186d-4a03-89ee-704caae47b4c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.079797s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.121369s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin [0.114597s] ... 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-adff0167-a200-4ec0-8d57-faf95982dce4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "81fadc09-1b88-4715-997b-4f71ac5683ea", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/81fadc09-1b88-4715-997b-4f71ac5683ea", "rel": "self"}, {"href": "http://localhost/ports/81fadc09-1b88-4715-997b-4f71ac5683ea", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.054963s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.294897s] ... 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-7b58cac3-9992-4bfb-8086-414b12482521
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.072448s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.066857s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match [0.124491s] ... 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-f3c0f324-4e9e-49a2-a978-89726fc7a4a2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.052937s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.053440s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.133526s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.207602s] ... 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-c302a81e-4c2b-4b45-9bad-8a8878153987
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.111388s] ... 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-dca60143-d170-4ce1-a353-7a958b057eb1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": []}
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned [0.062608s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.062014s] ... ok
{1} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.046764s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.072301s] ... 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\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.060425s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.039374s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.057815s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.168010s] ... 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-3d38d897-33c1-4fb7-86c4-94522a019eeb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.095343s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.062145s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.053243s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.039433s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.080972s] ... 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-690682a1-1487-49c3-a8fa-b2db4cb2da47
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.068694s] ... ok
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.057674s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key [0.116192s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-de16c28f-18a3-4d8d-a28b-010d1935b405
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"ports": [{"uuid": "0c274e14-6f33-406d-a2e1-73a5e5e1cf27", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/0c274e14-6f33-406d-a2e1-73a5e5e1cf27", "rel": "self"}, {"href": "http://localhost/ports/0c274e14-6f33-406d-a2e1-73a5e5e1cf27", "rel": "bookmark"}]}, {"uuid": "1b883784-d794-40d6-8cd9-a715ba3e04e3", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/1b883784-d794-40d6-8cd9-a715ba3e04e3", "rel": "self"}, {"href": "http://localhost/ports/1b883784-d794-40d6-8cd9-a715ba3e04e3", "rel": "bookmark"}]}, {"uuid": "efd0597d-971e-4fd4-962a-0f647a58ccee", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/efd0597d-971e-4fd4-962a-0f647a58ccee", "rel": "self"}, {"href": "http://localhost/ports/efd0597d-971e-4fd4-962a-0f647a58ccee", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.064528s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.105431s] ... 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-c6c32127-54a1-4301-8bf1-90186594c568
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed [0.159371s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ce8ac492-4395-4aa2-9d64-36eb97c3175c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "5af9f5ff-40f1-4a6c-92ce-54238e4727ad", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/5af9f5ff-40f1-4a6c-92ce-54238e4727ad", "rel": "self"}, {"href": "http://localhost/ports/5af9f5ff-40f1-4a6c-92ce-54238e4727ad", "rel": "bookmark"}]}, {"uuid": "ed86f0ac-74d8-4998-80f9-5fc3a8b1ca0e", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/ed86f0ac-74d8-4998-80f9-5fc3a8b1ca0e", "rel": "self"}, {"href": "http://localhost/ports/ed86f0ac-74d8-4998-80f9-5fc3a8b1ca0e", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.097156s] ... 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-79144f20-46ed-4710-a2b7-3253bac2d60d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi [0.208201s] ... 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-908dbff0-7b84-4f21-be29-07820bfa4156
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:26.839434+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.146029s] ... 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_port.TestListPorts.test_sort_key_invalid [0.130416s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-0389f66d-1d65-4d92-b37b-9bab9c1d850d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/ports?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-19a90a4c-a8e0-44a8-80b6-0dc3e9e6c1ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/ports?sort_key=internal_info WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d9f6dfab-2e74-4fe8-bf65-a66c2bfe1c2a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/ports?sort_key=local_link_connection WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-cea184fe-5258-4cf0-ac3c-9dfade984fc5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.131895s] ... 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-0b7e7517-b7dc-4106-bd16-a0811e62cea9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.121880s] ... 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.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.146270s] ... 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-a4aa49a1-0734-4a97-9d77-48e70fd7bf74
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.082174s] ... 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-fdd62b76-41ff-44a7-b716-0e74d255186a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed [0.111054s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-c3ac34ec-9dd7-47f5-ab84-82079c3364ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.18
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.117762s] ... 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_port.TestPortsController__GetPortByAddress.test__get_ports_by_address [0.077850s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid [0.204651s] ... 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-96a8b31d-39a4-44b4-9c4a-c8b717493ba0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:27.205781+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.180104s] ... 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-37287275-68da-4caa-a89e-d98e6725e021
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.125297s] ... 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.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.102711s] ... 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.163908s] ... 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-54ac9685-18a8-49a8-858a-f4447d3ea7eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.172859s] ... 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-e9fd543c-9ab8-4a88-8355-92b08d71ee48
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port [0.279474s] ... 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-ceabd862-3685-4214-b2ee-690f478811dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-03fe4f12-f8ec-4521-96c1-6cfe21ba1c2b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.103632s] ... 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin [0.095597s] ... 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-13768744-dc0f-47a4-b158-182a5fc0c3fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{1} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.090922s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member [0.090285s] ... 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-ec8b3264-3213-44cc-8f65-f64f2f7b66bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.200337s] ... 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-9a973096-74fa-41bd-a0fa-034b0593227e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:27.583555+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"}
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip [0.093601s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.232221s] ... 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-cea80089-ed15-44f7-93c0-ff388faffccd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer [0.089695s] ... 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-6904f682-ae6a-47c0-bd08-b531b2786325
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip_node_override [0.093314s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin [0.081444s] ... 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-2cbe505a-6d9d-4c03-be87-f8a0d5d776a6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.164921s] ... 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-4bfafb25-fe27-4e61-8740-c5543d5ae837
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_copy [0.096297s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.112107s] ... 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-e79c4994-4be7-4546-9614-625932f86e4a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /value. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link [0.098875s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.287484s] ... 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-cd7b3b7b-32e4-46ed-a4ed-72aa19aea4dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:27.957073+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-0457361a-d477-4e30-a259-78b4ce6a8e76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:27.957073+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link_no_restorecon [0.108596s] ... ok
{1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_unpublish_local [0.083477s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.258364s] ... 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-292b136a-454d-4935-a566-8981fafe2b34
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:28.074692+00:00", "updated_at": "2025-06-04T21:50:28.095107+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-65b087ef-2269-4c7e-b0ec-d4a52cb3ed0b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:28.074692+00:00", "updated_at": "2025-06-04T21:50:28.095107+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"}
{1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_filename [0.083326s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.275515s] ... 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-81f0ae2e-47cc-42b2-bd53-247fd085a40a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:28.262198+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-fba5dc6a-e183-4bc9-bb08-7b06f0128f83
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:28.262198+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"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id [0.117782s] ... 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-a50f57ed-f6e2-4b2e-b34b-874c0fa8bc0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member [0.550205s] ... 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-ec0a030e-7a2f-4173-8a44-baeb67c3cf79
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_qs [0.099899s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.149352s] ... 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-3760f079-aa6b-4832-a0b4-2365f91e96cc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer [0.093293s] ... 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-e6906522-f15f-463f-8b8c-428fd0765a83
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.134338s] ... 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-c4495219-768e-4a42-a90a-2913258baf32
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_without_qs [0.094983s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.084957s] ... 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-34d57269-82c6-4a65-82a7-dbe76b76cbf4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid [0.103002s] ... 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-f28c667f-506b-44e8-83e5-34e5527d9cce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_publish [0.106425s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.073066s] ... 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-4960a4ed-7e42-4ab1-a6ae-8e802da85101
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.093670s] ... 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-14eac277-5fe5-467b-a699-b24f646483e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist [0.120246s] ... 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-696b995f-b7d6-47b1-9a9f-69521a777e6b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_unpublish [0.118920s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.311463s] ... 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/f856925d-6741-4d80-ae98-b329af758298
Openstack-Request-Id: req-c190c1d4-76a1-4df9-8f6e-2b48cd316d6a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f856925d-6741-4d80-ae98-b329af758298", "created_at": "2025-06-04T21:50:28.712748+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/f856925d-6741-4d80-ae98-b329af758298", "rel": "self"}, {"href": "http://localhost/ports/f856925d-6741-4d80-ae98-b329af758298", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
GET /v1/ports/f856925d-6741-4d80-ae98-b329af758298 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b42391e2-004a-4488-b9e7-a3e249e568a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f856925d-6741-4d80-ae98-b329af758298", "created_at": "2025-06-04T21:50:28.712748+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/f856925d-6741-4d80-ae98-b329af758298", "rel": "self"}, {"href": "http://localhost/ports/f856925d-6741-4d80-ae98-b329af758298", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.084253s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.133073s] ... 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-197dbb97-5377-4f13-806f-3a263426a963
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state [0.122261s] ... 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-c6e2bd4c-c97b-40b9-96e9-b30324e162de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.111019s] ... 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-c04de25f-0cf5-4f3b-bd05-b8536bfd9adc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.078310s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.072435s] ... 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-7d0993fe-2acf-44ea-bade-ae65405a2e98
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.092230s] ... 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-1b803642-762e-47af-974f-9f7eeff155b7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.068735s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.138709s] ... 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-7ababc4a-c624-4442-97b5-8dec7b7745fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:28.945767+00:00", "updated_at": "2025-06-04T21:50:28.956907+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.099576s] ... 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-e91c90af-8eec-4f38-8565-c8ecf9bf1304
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.084466s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.103047s] ... 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-ea773f05-a3ad-428a-8e4c-9fa842e87b8c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string [0.153143s] ... 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-7d133f0e-b5c5-43ce-a181-ccd8e32e98c2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin [0.111666s] ... 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-73ff38b3-a3b1-42e1-b9ba-ff0b25b751f2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.078481s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member [0.085971s] ... 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-cb1eced4-47be-44b8-81dc-f71c20902511
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override [0.055196s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.119025s] ... 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-a1fa1385-6960-44e1-8972-6e62f9c36bbb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid [0.126393s] ... 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-5d27573a-3f61-480a-b7b3-3144c963a675
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:29.204774+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.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_data [0.062175s] ... ok
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_user_auth [0.047033s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.117597s] ... 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-d93684f3-1582-462a-9be9-8df90e6d3a18
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.136319s] ... 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-bf529c81-7d80-44aa-9789-63178883647b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer [0.163859s] ... 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-783e9aa5-a8c0-4c2e-b48b-555356fde32c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.060037s] ... ok
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_oci_url [0.047612s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.117989s] ... 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-3fb9dc96-49c4-40c0-aa93-6384d405c2e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin [0.116020s] ... 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-955adbf3-4b07-4ba1-87b1-47683102bf38
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_is_container_registry_url [0.055096s] ... ok
{1} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_fails_multiple [0.054754s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.237798s] ... 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-9d9e27ad-532a-4fcd-b92d-f943d1865de8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:29.609073+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"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.125922s] ... 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-ce6b2ad6-ae6c-46f1-afc3-e1704ea00270
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:29.581489+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"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member [0.135302s] ... 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-9a4c3b94-a58e-46aa-a4db-ba871aadf72c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes [0.082369s] ... ok
{1} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes_iso_gpt [0.061184s] ... ok
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.118850s] ... 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-89641b40-4ff9-44b7-a7ef-a04552a43506
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:29.715665+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"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer [0.103736s] ... 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-f6801506-a2a2-411c-a02c-b3a1a6414f35
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.178835s] ... 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-59e6cddc-c138-4245-aed2-9d84d8403f7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': '0a:1b:2c:3d:4e:5f', 'switch_info': 'fooswitch'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.074655s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.040513s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/21777eb5-4429-4086-9efb-7ff31c771496 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-bfc0ab79-b1e0-4eb1-8e07-6b27cf62051f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 21777eb5-4429-4086-9efb-7ff31c771496 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_error_cases [0.131651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin [0.150006s] ... 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-f69db32c-9c2b-4810-a8b6-769a7d51b54d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.058641s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content
Openstack-Request-Id: req-92c638e6-07e0-49fc-aa32-1e2a2f01de0d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.033709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_path_dot_slash_notation [0.160994s] ... ok
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_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.078060s] ... 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-ab4edfd6-59ed-463a-8115-a0eaa1c54843
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional [0.250513s] ... 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-7d890e4d-56f4-4142-a228-a5d91b13bc50
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:30.027013+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"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member [0.184655s] ... 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-4c37cfec-dc08-4d0c-95a6-b08a413b9291
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked [0.125752s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-ea26f5e4-94f7-49c1-b43a-30dceeff15ff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.TestActions.test_action_with_dict_loop [0.155562s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_get_observer [0.145603s] ... 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-dd32a7b8-0939-4eba-b812-6992030c7957
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_with_list_loop [0.136491s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_admin [0.118156s] ... 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-1a891721-b607-49b5-9cda-888902252feb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_add_trait_action [0.125117s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_member [0.125588s] ... 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-7503e1c9-ea0a-40e4-a0b5-fb0441846ad0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_states_console_put_observer [0.090636s] ... 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-220f45c4-78e5-42cd-8dc4-d545020bc462
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_del_attribute_action [0.121366s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes [0.265596s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fdb4be7e-9b05-42ee-a6e7-18728044222d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.115399s] ... 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-385a9538-3a83-4cf1-a80d-3e856db4bef6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_del_port_attribute_action [0.127451s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.180149s] ... 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-c1a4a7f9-45f0-4327-a95c-e21c316f0a17
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes [0.256063s] ... 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-9c1b215f-d33e-4587-aac6-32aeb8b91c61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.110992s] ... 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-81fc1476-7165-4201-93cd-638a7fc6e9a6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.979554s] ... 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-c468f3a1-ab0a-4fd9-b8fc-4a7ac4253a77
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_service_nodes_cannot_post_nodes [0.293352s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f59a9d42-de17-4756-b39d-beb0f68532e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.213354s] ... 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-1d5030d8-5ee4-4b8c-88c7-f68379ef08bc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.219441s] ... 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-6355c5d3-2282-44a2-a56e-b46d7bbb68b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:31.243473+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.137949s] ... 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-e648174f-9047-4887-b19f-c46d6581b059
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_missing_address_fails [0.156942s] ... 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-77d6ab1c-913c-44cc-a792-31a0abccb867
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_attribute_action [0.678728s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_005_service_nodes_can_post_nodes [0.224481s] ... 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-3b742b72-4ca9-43ef-b356-071b150ffd0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.103443s] ... 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-2c99d699-ac89-4cd3-a954-1ace2967cb98
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_plugin_data_action [0.130150s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_no_mandatory_field_address [0.159402s] ... 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-12e4f57c-e6cc-4fbf-8912-519322bba9e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.145312s] ... 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-f33b60bf-15c2-464d-b892-9d3ed3cdebca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.155175s] ... 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-690f3492-4ec7-46df-bd89-e02279da2191
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} is not valid under any of the given schemas. Possible root cause: 'node_ident' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.173657s] ... 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-1a74b3d7-9d69-48a5-8df1-033a5f90a4bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_port_attribute_action [0.208288s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.076863s] ... 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-e84f2762-2e58-4352-b23c-071d3486f429
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.102378s] ... 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-997a8ae8-4812-474e-8307-c0d173112e8f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_fail_action [0.190117s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_node_uuid_not_found [0.252732s] ... 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-7aafdf4e-7547-4d79-8f1b-2c0214a13452
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.147767s] ... 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-398d446c-1bdb-42ae-823c-151fe7d95052
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_log_action [0.163863s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_novif_nopxe_noportgroup [0.146924s] ... 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-0a78a434-f3b3-4f8e-b38e-3328a669e02c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:32.143359+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.188682s] ... 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-d997a99e-09de-4a1b-9d53-78abb2799a95
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_remove_trait_action [0.159181s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.185337s] ... 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-b56598fe-2b9c-43e5-b19a-446a430d998b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:32.320711+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.test_acl.TestRBACProjectScoped.test_project_scoped_006_owner_manager_cannot_post_nodes [0.919090s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0700c264-6a3e-455d-88bd-de9c146cdfc3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.179848s] ... 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-1744a893-8653-4b1d-bd80-cd1367ab9bc1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_attribute_action [0.175866s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.185742s] ... 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-7153c750-491d-46b9-ac95-0b48877f26a2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:32.513290+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.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_admin_cannot_post_nodes [0.236317s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-020183cb-5e26-41b2-b771-bcd5828f8cb1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_capability_action [0.166720s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.199439s] ... 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-00184ef0-6a0e-42cf-a7ce-c2eefa8ab37d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup [0.186082s] ... 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-61f42fd8-088a-40a3-a931-10e3c4a9a299
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:32.702325+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_plugin_data_action [0.156923s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_admin_can_post_nodes [0.253639s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-717107bb-ad29-4d56-9ad6-e68f660fae2c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.168143s] ... 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-1f75e58d-d3d5-4da4-80e7-ab4e20f84775
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_port_attribute_action [0.134257s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestActions.test_unset_capability_action [0.124087s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.187704s] ... 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-ef71f262-c3f5-440a-bd02-518af1dd84a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:33.055975+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_lessee_manager_cannot_post_nodes [0.294911s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a82ba57e-6d89-43e6-a32f-cfde9eb4c777
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestActions.test_unset_plugin_data_action [0.164202s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_portgroup [0.194106s] ... 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-9461fa7f-42d5-4d3a-84d3-cfd363f716f9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:33.247338+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_lessee_manager_can_post_nodes [0.238734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-41b6d43f-ff5f-445a-9ef7-2f512393cf7c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.138700s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': 'fc969945-c9bd-4d23-98e1-6a123a533921', '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-8ca1f554-b6bb-4280-8111-09109e32a09a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fc969945-c9bd-4d23-98e1-6a123a533921 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestInterpolation.test_variable_interpolation [0.171671s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.771279s] ... 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-c7d80082-09e6-4197-ab74-82ad48563601
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.163402s] ... 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-9059132b-f554-41bb-80ef-04c416e19ce3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.15
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_is_true_false_operators_edge_cases [0.153312s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_011_third_party_admin_cannot_post_nodes [0.243862s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-47e351ce-fa5e-42f8-9038-724c839ce7fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_admin [0.203344s] ... 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-43ef135f-8e2e-477a-b702-f34958ade341
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"traits": ["trait1"]}
{1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_oneofoperator_edge_cases [0.145974s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_portgroup_uuid_not_found [0.167600s] ... 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-077feed6-c4ed-4a4f-83fe-ca365f027b10
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_exceptions [0.057742s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_member [0.186525s] ... 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-cd59749e-b58f-430e-94b8-e918104609ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_with_loop [0.072034s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_012_third_party_admin_can_post_nodes [0.235611s] ... 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-efa8e553-3b19-465b-9c1d-5edfe70fa1d9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.153141s] ... 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-657a81cf-2c55-487f-8de5-812c8b4f93e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_rule_operators [0.107774s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestClient.test_call_failure [0.058385s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.135260s] ... 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-850b42e6-876a-4879-9d7c-f54abd35955b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'} is not valid under any of the given schemas. Possible root cause: Additional properties are not allowed ('switch_foo' was unexpected)\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class [0.039341s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_version_and_cap [0.039788s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv4_success [0.027705s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv6_success [0.020835s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv6_success_rfc2732 [0.019510s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success [0.019082s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version [0.023591s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_get_observer [0.380265s] ... 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-50e0862b-f572-4584-9ac9-8a1838382603
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"traits": ["trait1"]}
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version_and_cap [0.062846s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra [0.249383s] ... 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-2e893ff2-be81-401a-bc1f-02b5ddd4cb14
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:34.213365+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-36806a66-2c52-480f-bf86-336aaf8080fd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:34.213365+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_member_cannot_post_nodes [0.470821s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ae4ce784-f1be-459b-ab49-a9da41bba720
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_admin [0.142784s] ... 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-23e035ff-048e-42c9-840f-b8dc9c60dbf1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_unexpected_failure [0.081381s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_with_client_ssl [0.038812s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_with_ssl [0.051455s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_member [0.102044s] ... 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-04d28749-9f7c-4d43-a403-43b4f3443d5d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_can_send_version [0.034348s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.211456s] ... 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-a6fae8d4-fcfa-45ec-b248-be3d02807c2c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:34.482930+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.common.test_json_rpc.TestClient.test_cast_failure [0.079038s] ... ok
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success [0.044049s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_put_observer [0.149394s] ... 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-0bd0c7ed-5b1a-4745-bb2b-5bbb1a25aca7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_reader_cannot_post_reader [0.271451s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-36396cb0-7e96-47ba-9eb8-f477cb1756a5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version [0.052082s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.183661s] ... 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-1d102550-cca5-4386-aa77-4dc81d3ea053
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:34.680896+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.common.test_json_rpc.TestClient.test_mask_secrets [0.045031s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_admin [0.126202s] ... 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-07dae667-cc8b-4deb-8663-ed62998b93bc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.084054s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_admin_can_get_node [0.195324s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-168c9e09-daa9-4fb5-b923-f17eaa99c305
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "0f932752-ded5-4913-b608-3df7816e13d2", "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.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_member [0.098068s] ... 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-276f814a-de53-489a-bf90-35a24aeb6b6d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.056655s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.190667s] ... 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-23daf0fa-d283-40fd-a8eb-d7930358f190
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:34.875869+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.048280s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_delete_observer [0.105953s] ... 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-d02110fd-6359-4e0d-a1fa-2b5c46cab265
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_manager_can_get_node [0.170432s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-09934f56-e61c-4574-a370-3b2733d2be82
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "84529167-9dea-494f-8036-f2a2bf51e07d", "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.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.107738s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.103774s] ... 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-77d51b8a-dbf2-4ed4-8657-c323d9978560
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.168541s] ... 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-ad80ba6a-adcf-4b61-a38c-ab4e9c35321f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.062261s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_member [0.119918s] ... 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-8b0ee506-8fe9-4154-9066-ff8066bb06b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_owner_member_can_get_node [0.185074s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0fde936f-1697-4bb3-b1ee-c6f457891124
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "d5cb81cf-589e-4146-9292-a2a0944ff495", "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.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive [0.142814s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.184603s] ... 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-6f6f89dd-c21a-4139-9e36-ff51ec846be0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:35.226385+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.098282s] ... 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-9d5098a1-a842-43ac-a6ac-9b320f7bb65a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift [0.141240s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_018_owner_reader_can_get_node [0.173562s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-39e0f4c5-aa4c-4daa-bc22-e22182159549
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "f6d701d9-168c-4162-bd3c-0f58e69264ec", "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.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.098692s] ... 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-09432a64-e155-4731-900c-4dd25bbcb749
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_both_node_ident_and_node_uuid [0.154139s] ... 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-89b5b3a4-36a5-4a71-8fb8-029a4ee701e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'node_ident': 'test-node-name'} is valid under each of {'required': ['node_uuid']}, {'required': ['node_ident']}\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.098439s] ... 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-89d381a5-4270-4645-a580-ea815392c85d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.110166s] ... 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-4157195c-f1cb-4138-9106-8d672d982174
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.163555s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_admin_can_get_node [0.175894s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b42d4800-7b19-4f30-8ebf-df69c00a60b1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "c41aa2e0-3038-4e45-b126-5416fe8b7629", "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.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.099669s] ... 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-edf7a9c3-e6d4-4394-ae5e-93f61cfb65ab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field [0.070074s] ... 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-97e1227b-c337-43d7-903e-c84b015297cc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic [0.092101s] ... 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-2413629a-a100-4621-886f-b0efe578da77
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:35.662114+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"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_admin [0.108465s] ... 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-5ed020f3-bd42-4295-a266-ccf872ba5e2a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_manager_can_get_node [0.189902s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-87457f57-42e6-478d-bf6a-76164f3d6aa2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "5590638b-413b-4d8b-b15d-44cee7398b31", "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.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_member [0.087882s] ... 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-20a33969-e6ba-4e43-a29a-39a14e179ef4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.122261s] ... 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-a0f2943b-3751-4306-95b6-45c2a684ceda
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:35.784934+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.274520s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_get_observer [0.083751s] ... 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-a0c397cb-a51d-4209-a799-3058a9d13e24
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.093838s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.109610s] ... 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-24b993a5-41b8-4899-8d6a-6f46fa715031
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.068826s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.060745s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_admin [0.185358s] ... 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-a7403b55-f537-4d4d-8f88-d33538e21ad6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_lessee_member_can_get_node [0.336422s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e183f527-4f92-4e62-a269-4d311d9ce348
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "7cb31268-95b3-4be7-8ee4-c7b3c032b11a", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.204328s] ... 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-fd3e2209-074a-4275-a660-47907867702d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'hostname': 'host'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.088631s] ... ok
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.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid [0.022057s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_member [0.107155s] ... 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-12affb50-350c-4fba-967a-51bb2294004c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_failure [0.022702s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_missing_segment [0.018878s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port [0.020919s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.021407s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_post_observer [0.113189s] ... 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-09edede9-d70d-4b28-a2c8-7f470de77994
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.041056s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.227339s] ... 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-1b4d1e6e-e3bc-47bc-bd7c-ef97b96359b1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.52
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_022_lessee_reader_can_get_node [0.275391s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dc7c888a-d2be-438c-a78f-c3625c6f3f44
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "7d24b142-6079-4060-9105-acdc4ce17c95", "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.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.135307s] ... 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-67df4628-5a8f-4f97-9b84-e1224fc5b534
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.087461s] ... 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-f7ae355b-6ebc-438d-b6fb-53e89ba2427f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound [0.289208s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.242641s] ... 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-c8d0da1a-b1ec-4acf-a924-7586e751182a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound [0.049673s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.128735s] ... 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-3be67140-5383-466a-bb27-529015c889ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_third_party_admin_cannot_get_node [0.262164s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6f7029b4-0b17-446c-853a-670adb20ae48
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": []}
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_not_bound_empty [0.048689s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_not_found [0.042563s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.112616s] ... 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-f1bf96a3-a8af-45b1-8e56-4638d87c0cff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_if_bound_port_osc_error [0.051008s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.037230s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac [0.024107s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.019306s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc [0.256662s] ... 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-9cc6b2a3-b8cd-48cd-afad-20f22438597c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:36.811329+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"network_type": "unmanaged"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.019329s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_024_owner_reader_can_get_their_node [0.227458s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-57e6145e-b395-45bb-8aae-2896397ac56e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-06-04T21:50:36.731785+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "lolcats", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.036361s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.057597s] ... ok
{1} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.041033s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.062018s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version [0.214413s] ... 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-5f97bdce-41d5-453c-9ec4-cfdb4558dd94
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.63
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_member [0.329880s] ... 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-d7d78f2a-187d-43ce-a737-e480c16def48
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_025_owner_reader_cannot_get_other_node [0.217593s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/64bdef1d-fe51-4533-b227-36927f50844d WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-805b5ecd-147e-4e29-a198-ac42c09dc35d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 64bdef1d-fe51-4533-b227-36927f50844d could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info [0.058882s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info [0.062779s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default [0.072725s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_lessee_reader_can_get_their_node [0.196270s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a6e72875-38cd-4ac9-a34b-a20fb1a7f985
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-06-04T21:50:37.183595+00:00", "updated_at": "2025-06-04T21:50:37.202698+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": "dcfc6152-a5dc-4fea-9975-12a0cf3e8ec2", "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": "dcfc6152-a5dc-4fea-9975-12a0cf3e8ec2", "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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe [0.061839s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.247870s] ... 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-5906dd1c-ae69-4ad0-81a4-a384e798723c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.064495s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident [0.381959s] ... 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-3d34120a-cc0d-4781-abcf-1b6a6a315e1d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:37.313180+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-3403fc39-8a10-404e-b05c-c7d10f130f6b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:37.313180+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_027_lessee_reader_cant_get_other_node [0.180283s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/374c13d9-f9b5-4245-ba46-1765c8fa7f3c WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c98aea58-4ad3-4215-a76c-57fafe0bbc2d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 374c13d9-f9b5-4245-ba46-1765c8fa7f3c could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot [0.101697s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_111_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.096850s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_third_party_admin_cant_get_node [0.176543s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/66d5cea7-bd25-408b-aa46-49d60fdab8c6 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f70aedef-05c5-41bb-b0cf-443bf8dad82e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 66d5cea7-bd25-408b-aa46-49d60fdab8c6 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident_unsupported_api_version [0.212543s] ... 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-e2177524-6ae0-4c8e-afd3-3535250ea2ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.93
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt [0.106384s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_admin [0.158866s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ec16fab-e126-454b-ad36-660ba98d8ae6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_restricted_fields [0.094725s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-03d7f25a-da58-411e-8540-5e5ce06233b2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-06-04T21:50:37.682654+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": "meow", "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": "lolcats", "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue [0.126502s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_cannot_get_restricted_fields [0.109202s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bfa29ca7-0306-4bd2-9016-e4c1cacc65ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-06-04T21:50:37.796965+00:00", "updated_at": "2025-06-04T21:50:37.811040+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": "ed13da71-2c42-453c-b141-e7d96f579db0", "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": "ed13da71-2c42-453c-b141-e7d96f579db0", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "self"}, {"href": "http://localhost/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/volume", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_member [0.175854s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-018a1fba-881e-498e-915f-0c5fd37c2e21
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_uuid [0.302821s] ... 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-c633a3c8-1b2a-4c65-b108-dcd7a45222d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:37.880572+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-9503f1ac-271e-454e-95f2-edf47deb629e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:37.880572+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_owner_reader_can_get_detail [0.099388s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a714415d-88cd-4ffe-bb00-1f26114e4a13
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-06-04T21:50:37.891907+00:00", "updated_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-06-04T21:50:37.903587+00:00", "updated_at": "2025-06-04T21:50:37.911467+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": "ab059b84-bb3c-4106-acf6-c9c67dff73e5", "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": "ab059b84-bb3c-4106-acf6-c9c67dff73e5", "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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.139209s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_032_lessee_reader_can_get_detail [0.101017s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-65f51800-b88c-4f8a-9b40-e5924c646075
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-06-04T21:50:38.007224+00:00", "updated_at": "2025-06-04T21:50:38.019027+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": "f383e93a-37de-48b0-9403-ff5df72f80b8", "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": "f383e93a-37de-48b0-9403-ff5df72f80b8", "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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params [0.102798s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path [0.065054s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_third_party_admin_cannot_get_detail [0.088104s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-93e475ec-a7a9-4483-965e-032e42efdcc7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": []}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.072937s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.289180s] ... 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-ccfaefcb-84bb-47bf-8bdb-38b398fb98ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:38.195222+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet1", "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.060936s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_admin_can_patch_node_extra [0.165326s] ... 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-433ea3fc-0145-4e0e-8f1f-68dfcf936c9a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.055239s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_manager_can_patch_node_extra [0.127402s] ... 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-fdb30a64-ed6f-4cf6-8ca2-de9d9969d691
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.126795s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_with_physical_network_old_api_version [0.240294s] ... 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-bd64628e-3d66-4eb9-b5ac-2042dfb3bde2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.33
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_036_owner_member_can_patch_node_extra [0.148941s] ... 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-ae188193-57a4-4ecb-92aa-aab73a653b0a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.183006s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_get_observer [0.758116s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2c830a8a-1685-40f6-8f68-33a45bf38fd3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_owner_reader_cannot_patch_node_extra [0.087751s] ... 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-eadf1772-dd0b-4335-9e9e-eac4efbdd7cf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade [0.254489s] ... 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-570770be-7366-43ac-8377-9284d8c5c693
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_admin_can_patch_node_extra [0.135798s] ... 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-6936831f-6662-462b-b67f-b2600680bd70
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.201506s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.198819s] ... 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-70451309-33c6-4aa5-83da-017232637d5b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_admin [0.284454s] ... 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/39a7297d-2c08-4043-b332-efb5f9c126cb
Openstack-Request-Id: req-8ec80c29-0d68-4e79-9cef-faae9f67c02b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "39a7297d-2c08-4043-b332-efb5f9c126cb", "created_at": "2025-06-04T21:50:38.925152+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/39a7297d-2c08-4043-b332-efb5f9c126cb", "rel": "self"}, {"href": "http://localhost/portgroups/39a7297d-2c08-4043-b332-efb5f9c126cb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/39a7297d-2c08-4043-b332-efb5f9c126cb/ports", "rel": "self"}, {"href": "http://localhost/portgroups/39a7297d-2c08-4043-b332-efb5f9c126cb/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_manager_can_patch_node_extra [0.150120s] ... 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-f9de75a0-8651-4347-87d4-35f5bd959558
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.229478s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_040_lessee_member_can_patch_node_extra [0.152170s] ... 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-b173b18c-fde1-4814-94c5-27c3e2e28459
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_member [0.242194s] ... 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-3581605a-97de-4dea-aa74-0c3b3d8f3180
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.228844s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_post_observer [0.200429s] ... 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-1257b46b-f739-4236-aece-980988eb1e4f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_lessee_reader_cannot_patch_node_extra [0.422708s] ... 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-8327fa5b-8aae-4a02-bd33-4496017001fd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.253260s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_042_third_party_admin_cannot_patch_node_extra [0.088101s] ... 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-6d1d8d5e-cfbc-4359-860f-f49c7052e2d3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_admin [0.317351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6a547d29-295f-4fef-8315-e6521d344277
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:39.553820+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [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(
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_admin_can_change_drivers [0.135229s] ... 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-0980a194-1051-4ad5-92d6-cb0c1f9a4a62
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.126787s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_member [0.248272s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9b55e167-2b6a-4cdf-8ce5-20e2e07ea08c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_manager_can_change_drivers [0.194620s] ... 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-dbcc3ac0-e988-470c-b409-e5e468b74459
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_without_node_or_node_uuid [1.049538s] ... 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-7f42bddd-2df6-40ef-bb53-17a653e2bbd9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} is not valid under any of the given schemas. Possible root cause: 'node_ident' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress [0.180958s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_detail_get_observer [0.154805s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cdb8a180-4a9c-41dc-97cc-40a76a0d5969
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:40.053550+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_owner_member_can_patch_all_the_things [0.150648s] ... 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-c2b7554a-e8b0-4ac5-800e-732267273c5a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.111083s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.250707s] ... 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-33d3dedd-73c1-48e7-bb95-a9a436a4041d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:40.200589+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.096681s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.152268s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9f724298-d232-4243-af49-6948fa5fad31
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:40.178159+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.083957s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.121612s] ... 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-b676d6ff-43e0-4b03-93b4-4cf1bee2e182
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.24
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_owner_member_can_change_lessee [0.247259s] ... 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-310817d8-efec-40a7-a55a-2675cd701f78
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.160091s] ... 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-bfe019d1-6383-4c3b-a2a3-5f2bcf4f7003
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback [0.096185s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup [0.144824s] ... 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-b7d02b40-deea-43d3-aac4-69aa7913a374
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-54137f2e-39ee-4d0e-afb5-6da2a7dbbc89
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.123492s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_lessee [0.204732s] ... 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-aec9eeac-ecab-476d-85ac-37740b239b61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.192747s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-df71906e-35ea-4160-9ce7-d9c8950b86aa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:40.536649+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.131269s] ... 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-bf7e9ef9-18a4-44f2-aa49-7a42b42fe115
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:40.604753+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': 'a481d1c9-a5f8-4ba1-aa4b-c5a318f2ef70', 'name': 'd1f91249-9602-4f80-99c4-df4d419d7e93', '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-a28b849f-0ee9-43ba-b159-485f60b2d931
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios [0.112632s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_048_lessee_manager_cannot_change_lessee [0.194159s] ... 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-0470677a-0e91-470e-b6a4-80e254b17a6e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized [0.148119s] ... 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-e14aa00f-99d4-47ba-a788-07459b104c1d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:40.756594+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-c8b63c99-bb71-46bb-8ddd-944df16e2554
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:40.756594+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.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi [0.124833s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.212326s] ... 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-208adf5d-01be-4920-b02b-a9766fa00f15
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.104693s] ... 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-46489a00-5bba-4b17-92b2-032deeefe68b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:40.892199+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.117477s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_049_lessee_admin_cannot_change_owner [0.194991s] ... 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-0fe171f5-c2b9-438d-bc18-35c5f5aa8ab8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.196607s] ... 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-40955ad9-5c73-446a-8dfa-1ff5fab75f50
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.113594s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.136927s] ... 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-46ec76b4-c78d-4ce8-bedd-e4a597112497
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:41.015419+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-92e85f55-bb29-4da2-8502-c75f3c0a7e48
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:41.015419+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.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.097864s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroup.TestPost.test_create_portgroup_error [0.095901s] ... 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-32185ec6-fc2b-4fad-866c-b484ae8fb5bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_lessee_manager_cannot_change_owner [0.183783s] ... 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-75fd4045-3d25-4b6a-9d61-f6da7a558549
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.199600s] ... 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-b7057e65-e543-432a-8b46-08f9a32f5712
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.114603s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroup.TestPost.test_create_portgroup_generate_uuid [0.144815s] ... 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/adf1bbc3-60e9-4c99-baad-1f421d34c526
Openstack-Request-Id: req-7c6c1f8b-a5e5-4499-8e7a-cb4775ed5598
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "adf1bbc3-60e9-4c99-baad-1f421d34c526", "created_at": "2025-06-04T21:50:41.278591+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/adf1bbc3-60e9-4c99-baad-1f421d34c526", "rel": "self"}, {"href": "http://localhost/portgroups/adf1bbc3-60e9-4c99-baad-1f421d34c526", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/adf1bbc3-60e9-4c99-baad-1f421d34c526/ports", "rel": "self"}, {"href": "http://localhost/portgroups/adf1bbc3-60e9-4c99-baad-1f421d34c526/ports", "rel": "bookmark"}]}
GET /v1/portgroups/adf1bbc3-60e9-4c99-baad-1f421d34c526 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2afe8d2d-33ab-4e45-80dc-378eb0f6df41
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "adf1bbc3-60e9-4c99-baad-1f421d34c526", "created_at": "2025-06-04T21:50:41.278591+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/adf1bbc3-60e9-4c99-baad-1f421d34c526", "rel": "self"}, {"href": "http://localhost/portgroups/adf1bbc3-60e9-4c99-baad-1f421d34c526", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/adf1bbc3-60e9-4c99-baad-1f421d34c526/ports", "rel": "self"}, {"href": "http://localhost/portgroups/adf1bbc3-60e9-4c99-baad-1f421d34c526/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config [0.084657s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.107669s] ... 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-284909e6-81c5-4903-83cc-3c60caae5029
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.201948s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-483fcbf1-0da5-43d7-adec-7c1606999f6d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_can_change_lessee [0.299752s] ... 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-b2f2e94b-6a40-4496-9c91-4618936b563b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.070328s] ... 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-fc11256a-347a-49f8-bc26-f34f978ada63
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda [0.155311s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.108677s] ... 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-5c0289ed-2fd2-4c7e-92df-f74976f717ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.14
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.200463s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ab4a6542-9ae5-4ddd-9345-bb70fac773c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso [0.142967s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.115514s] ... 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-48b04cda-1b22-481e-8192-fb68d7faa552
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.210626s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7dac75c2-7fb7-4531-b444-07e9f71e1875
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.130282s] ... 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-c32c6cd9-0885-4cb8-b5a3-d845ef6056f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}} GOT Response: 406 Not Acceptable
Content-Type: application/json
Openstack-Request-Id: req-1f078b23-ae62-4e0f-8c7c-a2c81208efb8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.25
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_can_change_lessee [0.445851s] ... 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-22cfbbcc-320a-4831-b8e2-6fd7f197d29a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.128924s] ... 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-9dca8d3a-541b-4cdc-a073-f7ae98f855c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.26
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:41.994132+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_admin [0.218739s] ... 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-edca4651-dc3a-4fe7-8704-aea83754fe6f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid [0.093097s] ... 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-5657b1c5-a5d9-4699-84b2-51199273aa02
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_owner_admin_cannot_change_owner [0.292036s] ... 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-7a8c500d-762e-41be-bb63-f23761086f9e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_member [0.193927s] ... 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-85c44564-2e95-47a9-8de0-42e326229aa8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.149210s] ... 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-7c3d5aae-4326-4e4c-8ead-5a239aeebd34
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:42.226653+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-7f9f7d5b-86b3-4d6c-84a7-6fbfad25655a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:42.226653+00:00", "updated_at": null, "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "foo", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.160368s] ... 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-7e299e9b-8e2e-4b51-878f-6606c7848c3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:42.412430+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-b4804dc9-002b-4649-8e7a-c180796f5ef7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:42.412430+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"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_get_observer [0.234507s] ... 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-0e93e8fb-918d-4149-8cac-13940f0f5245
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_owner_manager_cannot_change_owner [0.308445s] ... 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-d560b57d-56ad-47fa-a5fc-091f6514365d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.094339s] ... 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-cdf8cd99-4592-4183-9da7-afe695f727a4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk [0.941067s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.100985s] ... 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-a11a6b54-938e-4b67-93d2-6656057a960a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.141932s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.267029s] ... 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-c38cb9eb-ff0b-4030-92bb-6db682970529
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:42.616820+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.257728s] ... 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-ec8c1308-6316-4baf-9112-a9bf2836c994
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b3ff3f3f-0344-417f-8cfa-fff737f9a805
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.23
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath [0.157649s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_can_set_protected [0.418167s] ... 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-f752547a-4281-4d06-929f-76eba04d2564
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.267619s] ... 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-675c7d6b-994d-4e21-b06e-3ee9a42cdfb8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.135357s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.172358s] ... 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-b837997e-f3e4-4808-a70b-1d11fd003415
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:43.058815+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-c1d09db5-c8f2-4964-8f4b-dc60cb4a93da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:43.058815+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.099956s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.108000s] ... 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-6bb59396-392f-42a0-9ab7-a6718b6863c5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_instance_info [0.290896s] ... 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-6ae18e06-b4bb-4a72-b65d-ddf6b9b0b4c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.215867s] ... 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-1e6b470a-9045-409d-b46d-2a481caaea60
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:43.161882+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.144167s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.129651s] ... 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-29dffd09-c863-4773-a3a0-0742d325466c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:50:43.326847+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_enroll [0.075534s] ... 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-c7906b4a-0fdf-40e4-90fe-714096a9e63f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "602dada8-f88a-4597-a310-55fc4993fa0e"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.133559s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_admin [0.186181s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ea91f95d-d59e-4e65-a0e5-76808fcfe49c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_override_defaults [0.085283s] ... 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-c01c9c57-6995-446b-8f0a-86e96e88c6ad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "8b550d63-ecbc-4751-bdef-972456461e12"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_driver_info [0.291393s] ... 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-44aba080-1f10-4318-b4f9-ade9c6fc55a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:driver_info\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.121426s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_wrong_driver [0.085168s] ... 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-801d7ae2-f29e-4a50-801d-79f74013d36b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"An unknown exception occurred.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_member [0.184425s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8b2f5043-c17a-4ef5-ac71-170df3c60c97
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.151142s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_properties [0.207988s] ... 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-e1c86816-6d01-453d-bbd2-c0306795c0ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:properties\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_bmc_address_as_none [0.134370s] ... 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-9007985c-9bae-4b7a-91cb-73374ee5249d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "a49f801a-3c40-498e-8717-46576ca000d3"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios [0.151570s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_get_observer [0.271770s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d934c39e-34db-491d-a3a7-85ab65623254
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_inspector_compatibility [0.150572s] ... 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-c82d7fbf-dee5-495e-979b-ebb87fc13a6b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"uuid": "74acec1d-de4a-4dc2-b153-1e079620955b"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_network_data [0.248832s] ... 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-991d3533-6199-4900-9d69-bd5ba7884097
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:network_data\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv4 [0.167417s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestContinueInspectionScopedRBAC.test_invalid_schema [0.134604s] ... 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-14a800fe-db28-47ad-9fed-2b136e751b2a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_admin [0.235777s] ... 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-b354da16-c0c0-452d-9119-bad4086edd77
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_new_api [0.099534s] ... 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-e900f6c1-8496-466e-bd13-af5238cc3547
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"node": {"uuid": "8e9e797b-9dd5-42cc-b148-af05ee6662d7", "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/8e9e797b-9dd5-42cc-b148-af05ee6662d7", "rel": "self"}, {"href": "http://localhost/nodes/8e9e797b-9dd5-42cc-b148-af05ee6662d7", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "noop", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv6 [0.117140s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_060_lessee_member_cannot_patch_name [0.223187s] ... 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-8a368f87-c162-48c3-aec7-6257b392ea87
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:name\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv4 [0.108908s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestContinueInspectionScopedRBAC.test_no_usable_lookup_data [0.112427s] ... 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-3576251c-509e-4959-9706-db3a642c144d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_old_api_version [0.094385s] ... 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-a8b92123-92f5-4c30-a9c5-33ecbd321b7e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.83
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv6 [0.112272s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_member [0.242973s] ... 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-65c2459c-f7ea-4a42-a6e1-6a6f866401f7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_lessee_member_cannot_patch_retired [0.202152s] ... 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-aa9ba0eb-92cf-4cc0-8d89-e57f8bad795b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:retired\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.092955s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_bad_invalid_agent_status [0.128522s] ... 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-79ee5f44-6ffd-4b79-8361-79f6d01c0da1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios [0.088142s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_post_observer [0.195383s] ... 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-04a22cf8-5919-42a8-a208-36c20112a9f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script [0.055993s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url [0.135830s] ... 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-abe0796c-f77f-4787-8a7e-0326fb4a844f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.028446s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.024506s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_admin_can_patch_node_instance_info [0.267110s] ... 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-bc1738e7-8ef2-4a6f-b76d-8476b55970dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.034640s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.032198s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_file_url [0.130709s] ... 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-631399e7-f86e-4df1-bccc-8a617dd9981a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.035849s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_admin [0.215037s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a3305e82-8881-4617-8ac3-7b6b4de9dd91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:44.719613+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.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.026902s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_link_mac_pxe_configs_with_pxe_disabled [0.073612s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_not_found [0.147488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/ff125281-1166-43b5-854b-4d84e800c963 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-767f9b4c-9c29-4236-b3fc-1fe5f82f69d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ff125281-1166-43b5-854b-4d84e800c963 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config [0.043394s] ... ok
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs [0.030627s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_member [0.184412s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e2da9534-650c-4096-bc31-e92d76e62eba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_063_owner_manager_can_patch_node_instance_info [0.289258s] ... 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-1c2da6b3-ea59-4b18-b9a0-1ffda4158e96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok [0.089857s] ... 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-6f3e533a-2834-42f9-a34a-f6cd8b0d26bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_pxe_config [0.059629s] ... ok
{1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.023027s] ... ok
{1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.020581s] ... ok
{1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.018170s] ... ok
{1} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.017258s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status [0.099034s] ... 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-12efdc74-e791-464a-a53d-4b4aea43a4e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_command_not_found [0.033741s] ... ok
{1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.028606s] ... ok
{1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.031510s] ... ok
{1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.020892s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_detail_get_observer [0.246441s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3dbbeba5-8ab3-424a-a7c8-4a891fe59372
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:45.157223+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.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default [0.025876s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token [0.126106s] ... 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-2cb5b2f7-fb70-482d-bace-866805fa26fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false [0.031682s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_064_owner_member_can_patch_node_instance_info [0.300638s] ... 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-108c1afa-2337-4110-bb8b-f07bd706f053
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true [0.033095s] ... ok
{1} ironic.tests.unit.common.test_utils.IsHttpUrlTestCase.test_is_http_url [0.023625s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca [0.110220s] ... 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-91f678e5-48ad-4186-8aa2-2d8b2e6bfb02
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test__append_operator_to_hints [0.027079s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_empty_value [0.024746s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer [0.023906s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values [0.045170s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.099923s] ... 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-b2a0578a-a251-4d71-acff-ce1af67fc59f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_admin [0.252351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b85bb88d-99ab-4cd8-b411-572000829efc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:45.408186+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.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space [0.054427s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_owner_reader_can_patch_node_instance_info [0.229540s] ... 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-33ba1444-e641-4702-9971-04bfe0b47f42
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.083828s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted
Openstack-Request-Id: req-00aa1aae-da05-4f3c-a7fc-331056192358
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator [0.054824s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value [0.069792s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_for_anaconda [0.110119s] ... 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-5b2d6113-4c49-4a25-b1cd-fc7419e44ca6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value [0.072027s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_member [0.239004s] ... 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-f14a1fdc-9feb-46ed-b386-56201a44b8cf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.087056s] ... 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-0e00a8a8-2c21-4427-a5ac-6dcc4fcad054
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.90
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_in [0.070833s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error [0.082980s] ... 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-05263022-95b1-4f4a-89c2-75dbc8960cea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.67
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_066_lessee_admin_can_patch_node_instance_info [0.297689s] ... 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-93fae420-650a-41e7-b124-c414b5868733
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space [0.071364s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.073482s] ... 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-bbdb5a4b-aad6-4b21-b6e4-f9939fe69364
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.35
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space [0.059938s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_get_observer [0.242619s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d99923f2-8e54-420d-9696-a11436ea0ba9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:45.905399+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.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space [0.046512s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error [0.089516s] ... 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-f9d6ffcf-0ed2-4d47-bf3b-1e91e90f6e7f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.71
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_space [0.043774s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.059664s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/heartbeat/0b08cbf2-72b1-450c-8a44-373880844274 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5c9b9eaa-2264-441b-8c9b-615b80dc8dfd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or [0.053614s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational [0.047914s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_manager_can_patch_node_instance_info [0.293167s] ... 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-4cbe9846-a714-4057-b2e2-3e9cdac4e732
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links [0.106061s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/?limit=3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c2653fa0-7607-4bae-ac3c-395e910f3c05
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "bd3a93fd-f2ec-4aec-8de8-6f8526deaf1a", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/bd3a93fd-f2ec-4aec-8de8-6f8526deaf1a", "rel": "self"}, {"href": "http://localhost/runbooks/bd3a93fd-f2ec-4aec-8de8-6f8526deaf1a", "rel": "bookmark"}]}, {"uuid": "73434a9b-f266-4b58-826e-3a2a260752a6", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/73434a9b-f266-4b58-826e-3a2a260752a6", "rel": "self"}, {"href": "http://localhost/runbooks/73434a9b-f266-4b58-826e-3a2a260752a6", "rel": "bookmark"}]}, {"uuid": "4f0e2720-e177-4d86-89a7-b8dd0f48c792", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/4f0e2720-e177-4d86-89a7-b8dd0f48c792", "rel": "self"}, {"href": "http://localhost/runbooks/4f0e2720-e177-4d86-89a7-b8dd0f48c792", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=4f0e2720-e177-4d86-89a7-b8dd0f48c792"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size [0.045991s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_admin [0.225896s] ... 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-8c9f3ca7-a614-4b1a-a824-0c0d3858dd0e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or [0.042369s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid [0.047623s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path [0.041285s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl [0.044698s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_member [0.164108s] ... 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-47037aaf-d02a-4dac-b5bb-9a24b6ba7561
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_lessee_member_cannot_patch_node_instance_info [0.252456s] ... 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-3c8e467b-7002-4f98-9574-2640178f08b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model [0.052664s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name [0.047787s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational [0.046765s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial [0.049740s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_lessee_reader_can_patch_node_instance_info [0.191685s] ... 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-977b2bd8-9d7b-4f4b-8f8b-3c928f107125
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size [0.065282s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor [0.045814s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn [0.060154s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_070_third_party_admin_cannot_patch_node_instance_info [0.183490s] ... 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-3b2bda4b-701e-48e6-9377-5ca7d5729e55
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_custom_fields [0.621794s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-06b40414-d454-4080-8d8c-6ce05e6fc7c3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "4079ce2b-616e-4629-8b5e-a83c8791d49d", "links": [{"href": "http://localhost/v1/runbooks/4079ce2b-616e-4629-8b5e-a83c8791d49d", "rel": "self"}, {"href": "http://localhost/runbooks/4079ce2b-616e-4629-8b5e-a83c8791d49d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "d3bdb286-324e-409f-804e-6d58b5d26be1", "links": [{"href": "http://localhost/v1/runbooks/d3bdb286-324e-409f-804e-6d58b5d26be1", "rel": "self"}, {"href": "http://localhost/runbooks/d3bdb286-324e-409f-804e-6d58b5d26be1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "611b87b2-345b-4e0d-bcd5-719296771de2", "links": [{"href": "http://localhost/v1/runbooks/611b87b2-345b-4e0d-bcd5-719296771de2", "rel": "self"}, {"href": "http://localhost/runbooks/611b87b2-345b-4e0d-bcd5-719296771de2", "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=611b87b2-345b-4e0d-bcd5-719296771de2"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension [0.064523s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension [0.045505s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_default_limit [0.085529s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-29838cbc-02a4-4f86-9c6c-26ea6f308b19
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "4a0b6c0a-1dd3-4ccc-9868-0487a9b8a4e7", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/4a0b6c0a-1dd3-4ccc-9868-0487a9b8a4e7", "rel": "self"}, {"href": "http://localhost/runbooks/4a0b6c0a-1dd3-4ccc-9868-0487a9b8a4e7", "rel": "bookmark"}]}, {"uuid": "ad0f8fb6-341f-4b40-bf4d-c85a46312256", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/ad0f8fb6-341f-4b40-bf4d-c85a46312256", "rel": "self"}, {"href": "http://localhost/runbooks/ad0f8fb6-341f-4b40-bf4d-c85a46312256", "rel": "bookmark"}]}, {"uuid": "f21d8c8e-2036-423c-a848-c7f84e9cffd7", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/f21d8c8e-2036-423c-a848-c7f84e9cffd7", "rel": "self"}, {"href": "http://localhost/runbooks/f21d8c8e-2036-423c-a848-c7f84e9cffd7", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=f21d8c8e-2036-423c-a848-c7f84e9cffd7"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints [0.064441s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_071_owner_admin_cannot_delete_nodes [0.178486s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-236baa93-84e4-456d-a90e-32d776597e1d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_non_existent_hint [0.085085s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_patch_observer [0.654008s] ... 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-bfd4255b-7eb0-4207-8849-b170235c9cc2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query [0.157482s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fc2c0652-0743-44df-b682-9e246a8913ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "dd4d0fce-0e91-47d2-9709-e8bed9fe9a7f", "created_at": "2025-06-04T21:50:47.010339+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/dd4d0fce-0e91-47d2-9709-e8bed9fe9a7f", "rel": "self"}, {"href": "http://localhost/runbooks/dd4d0fce-0e91-47d2-9709-e8bed9fe9a7f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name [0.077237s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_admin [0.092374s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-68cc06b5-5253-4859-92c7-180a02f8b7a9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_or_space [0.084124s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query_false [0.150221s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-802a600b-53ac-4654-9638-f6fb78b5ae23
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "a9ab72a7-0876-413f-a746-c1db6dc976c4", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/a9ab72a7-0876-413f-a746-c1db6dc976c4", "rel": "self"}, {"href": "http://localhost/runbooks/a9ab72a7-0876-413f-a746-c1db6dc976c4", "rel": "bookmark"}]}]}
GET /v1/runbooks?detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5db8b1bc-62fb-4461-ac64-291db2d79a8c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "a9ab72a7-0876-413f-a746-c1db6dc976c4", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/a9ab72a7-0876-413f-a746-c1db6dc976c4", "rel": "self"}, {"href": "http://localhost/runbooks/a9ab72a7-0876-413f-a746-c1db6dc976c4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_member [0.118493s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-364669be-64af-416e-875e-7fbdef43d63a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators [0.097840s] ... ok
{1} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators [0.067532s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_sort_key_allowed [0.139006s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?sort_key=name&detail=True WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-392649a0-f589-44d7-a7c7-d30756153dcb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "17555f0d-03e5-4497-bba6-f3dfa18dcd8e", "created_at": "2025-06-04T21:50:47.306318+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/17555f0d-03e5-4497-bba6-f3dfa18dcd8e", "rel": "self"}, {"href": "http://localhost/runbooks/17555f0d-03e5-4497-bba6-f3dfa18dcd8e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "4e04fa0e-d2a5-4085-86b9-e1363f55302c", "created_at": "2025-06-04T21:50:47.304992+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4e04fa0e-d2a5-4085-86b9-e1363f55302c", "rel": "self"}, {"href": "http://localhost/runbooks/4e04fa0e-d2a5-4085-86b9-e1363f55302c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "11ac27d4-439b-4ec6-887a-20e3c62e33dc", "created_at": "2025-06-04T21:50:47.303382+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/11ac27d4-439b-4ec6-887a-20e3c62e33dc", "rel": "self"}, {"href": "http://localhost/runbooks/11ac27d4-439b-4ec6-887a-20e3c62e33dc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_ports_port_id_delete_observer [0.100146s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cb7d2d00-9f0d-4a80-8681-e5e4e33c97ec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.063363s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_and_fields [0.096821s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?detail=True&fields=name WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-97c1a334-eb5e-41d0-a20d-03b0fd8e4247
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_admin [0.214260s] ... 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-a8908f9b-6106-4ba9-9c7e-b7680e66bcb7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_false_and_fields [0.127476s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?detail=False&fields=steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-31594be0-5302-4da7-b82e-ccb0cb214528
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"links": [{"href": "http://localhost/v1/runbooks/a2a8e40b-f00d-4335-be8d-1c442be6ed66", "rel": "self"}, {"href": "http://localhost/runbooks/a2a8e40b-f00d-4335-be8d-1c442be6ed66", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_empty [0.077382s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7498529d-2668-4b59-97be-2d22f8f567f6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": []}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_all_invalid_api_version [0.042782s] ... 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_runbook.TestListRunbooks.test_get_collection_custom_fields [0.068970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-707c429d-fed1-41fc-a59b-c189468a1844
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "47fb7f55-058e-4cd8-ab9c-c26d747e5553", "links": [{"href": "http://localhost/v1/runbooks/47fb7f55-058e-4cd8-ab9c-c26d747e5553", "rel": "self"}, {"href": "http://localhost/runbooks/47fb7f55-058e-4cd8-ab9c-c26d747e5553", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "8c9b0b2b-7e89-4897-a2a3-131be886b4d3", "links": [{"href": "http://localhost/v1/runbooks/8c9b0b2b-7e89-4897-a2a3-131be886b4d3", "rel": "self"}, {"href": "http://localhost/runbooks/8c9b0b2b-7e89-4897-a2a3-131be886b4d3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "e9d182ef-dbb3-4061-b232-82489c8e87f8", "links": [{"href": "http://localhost/v1/runbooks/e9d182ef-dbb3-4061-b232-82489c8e87f8", "rel": "self"}, {"href": "http://localhost/runbooks/e9d182ef-dbb3-4061-b232-82489c8e87f8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_pagination_no_uuid [0.043320s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?fields=name&limit=2 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-de821e93-b44d-4277-b5b5-378a7ad62fba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/be7f8b68-cd4b-435d-9ce3-dcccc5d267f1", "rel": "self"}, {"href": "http://localhost/runbooks/be7f8b68-cd4b-435d-9ce3-dcccc5d267f1", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/ea3ccb22-deb0-489a-8d6a-1e021ef3b9a3", "rel": "self"}, {"href": "http://localhost/runbooks/ea3ccb22-deb0-489a-8d6a-1e021ef3b9a3", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=ea3ccb22-deb0-489a-8d6a-1e021ef3b9a3"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_member [0.278808s] ... 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-5e7f10fe-3ef3-49d5-a506-a48943509fd3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_custom_fields_invalid_fields [0.037741s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/d9b96bb9-b7b4-4020-88a9-7890ab815740?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5570177f-0e63-49bf-89d6-3bfea210acd5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_072_owner_admin_can_delete_nodes [0.876723s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-70cbd365-90d2-4896-90f1-0bb8ff8f3b67
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one [0.053790s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/cff2b8e2-e2b6-490d-9273-ebd479db6c99 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5a483638-613f-4c29-bc90-14b924493d5b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "cff2b8e2-e2b6-490d-9273-ebd479db6c99", "created_at": "2025-06-04T21:50:47.896050+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cff2b8e2-e2b6-490d-9273-ebd479db6c99", "rel": "self"}, {"href": "http://localhost/runbooks/cff2b8e2-e2b6-490d-9273-ebd479db6c99", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_custom_fields [0.036295s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/6e261cd8-acaf-4052-b731-131639a2ce42?fields=name,steps WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e8ad4984-696d-443d-bf8b-da8f9d81aeb6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/6e261cd8-acaf-4052-b731-131639a2ce42", "rel": "self"}, {"href": "http://localhost/runbooks/6e261cd8-acaf-4052-b731-131639a2ce42", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.568181s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_invalid_api_version [0.029591s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/c0354d86-7a50-4372-bba2-ff0d3bffc6a7 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_runbook.TestListRunbooks.test_links [0.043264s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/356eb53d-bfdb-418c-842e-37aaa606dc8c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-34f865bb-2f54-436f-910d-57bcf0ce28ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "356eb53d-bfdb-418c-842e-37aaa606dc8c", "created_at": "2025-06-04T21:50:48.007306+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/356eb53d-bfdb-418c-842e-37aaa606dc8c", "rel": "self"}, {"href": "http://localhost/runbooks/356eb53d-bfdb-418c-842e-37aaa606dc8c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/356eb53d-bfdb-418c-842e-37aaa606dc8c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-783594e5-8ba6-44d3-af6d-82314af888d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "356eb53d-bfdb-418c-842e-37aaa606dc8c", "created_at": "2025-06-04T21:50:48.007306+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/356eb53d-bfdb-418c-842e-37aaa606dc8c", "rel": "self"}, {"href": "http://localhost/runbooks/356eb53d-bfdb-418c-842e-37aaa606dc8c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /runbooks/356eb53d-bfdb-418c-842e-37aaa606dc8c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7eaa09b7-09ba-4dd7-bef1-47bb29147d42
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "356eb53d-bfdb-418c-842e-37aaa606dc8c", "created_at": "2025-06-04T21:50:48.007306+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/356eb53d-bfdb-418c-842e-37aaa606dc8c", "rel": "self"}, {"href": "http://localhost/runbooks/356eb53d-bfdb-418c-842e-37aaa606dc8c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_many [0.056882s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-72b4975c-36a7-43f2-bace-31a550411743
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "70f32985-77ca-4018-9fa8-ad3ec597f890", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/70f32985-77ca-4018-9fa8-ad3ec597f890", "rel": "self"}, {"href": "http://localhost/runbooks/70f32985-77ca-4018-9fa8-ad3ec597f890", "rel": "bookmark"}]}, {"uuid": "cc530129-0df5-4484-9eaf-f5ea9a6dfd05", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/cc530129-0df5-4484-9eaf-f5ea9a6dfd05", "rel": "self"}, {"href": "http://localhost/runbooks/cc530129-0df5-4484-9eaf-f5ea9a6dfd05", "rel": "bookmark"}]}, {"uuid": "eab7de03-b43f-4f2d-858c-903f0db930e1", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/eab7de03-b43f-4f2d-858c-903f0db930e1", "rel": "self"}, {"href": "http://localhost/runbooks/eab7de03-b43f-4f2d-858c-903f0db930e1", "rel": "bookmark"}]}, {"uuid": "ad1e5c00-633b-49d5-a38e-839b1a6d7264", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/ad1e5c00-633b-49d5-a38e-839b1a6d7264", "rel": "self"}, {"href": "http://localhost/runbooks/ad1e5c00-633b-49d5-a38e-839b1a6d7264", "rel": "bookmark"}]}, {"uuid": "47f24216-b4b8-4dd9-b924-3d8250e52a03", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/runbooks/47f24216-b4b8-4dd9-b924-3d8250e52a03", "rel": "self"}, {"href": "http://localhost/runbooks/47f24216-b4b8-4dd9-b924-3d8250e52a03", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_one [0.040107s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ea538045-df62-486c-8c0e-47f249c86efa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "24f13c3d-c2b9-4ba7-9322-9b8b5b35b250", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/24f13c3d-c2b9-4ba7-9322-9b8b5b35b250", "rel": "self"}, {"href": "http://localhost/runbooks/24f13c3d-c2b9-4ba7-9322-9b8b5b35b250", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_073_service_cannot_delete_owner_admin_nodes [0.277400s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a4319eac-94b1-40e3-a0ab-98ac71d4cdc6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sensitive_data_masked [0.034146s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/ef1374ec-04b4-40e1-a2ba-59a33d8bd056 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-38767ac7-e287-4548-a5fb-cc28641636a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ef1374ec-04b4-40e1-a2ba-59a33d8bd056", "created_at": "2025-06-04T21:50:48.155531+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ef1374ec-04b4-40e1-a2ba-59a33d8bd056", "rel": "self"}, {"href": "http://localhost/runbooks/ef1374ec-04b4-40e1-a2ba-59a33d8bd056", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "order": 1}]}
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.196818s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_get_observer [0.326577s] ... 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-47fe472d-e972-4daf-854f-1945de628611
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key [0.058659s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?sort_key=uuid WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-085a13ab-ee26-4936-b46b-02f838caa5fe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "689573a9-1c88-4419-ba6e-0a27e49194a5", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/689573a9-1c88-4419-ba6e-0a27e49194a5", "rel": "self"}, {"href": "http://localhost/runbooks/689573a9-1c88-4419-ba6e-0a27e49194a5", "rel": "bookmark"}]}, {"uuid": "e4b57fb3-8f00-4ac1-be14-3f41c84b91bd", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/e4b57fb3-8f00-4ac1-be14-3f41c84b91bd", "rel": "self"}, {"href": "http://localhost/runbooks/e4b57fb3-8f00-4ac1-be14-3f41c84b91bd", "rel": "bookmark"}]}, {"uuid": "f85f0164-4788-4baf-be97-714764f3ff4d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/f85f0164-4788-4baf-be97-714764f3ff4d", "rel": "self"}, {"href": "http://localhost/runbooks/f85f0164-4788-4baf-be97-714764f3ff4d", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_allowed [0.042205s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?sort_key=name&detail=False WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-477046f3-b4db-4ebc-8294-100c24420594
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "a85c70ae-e8c5-41ba-8534-682961e8f698", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/a85c70ae-e8c5-41ba-8534-682961e8f698", "rel": "self"}, {"href": "http://localhost/runbooks/a85c70ae-e8c5-41ba-8534-682961e8f698", "rel": "bookmark"}]}, {"uuid": "2da1b028-6c1b-41de-b2aa-015c183c4fb4", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/2da1b028-6c1b-41de-b2aa-015c183c4fb4", "rel": "self"}, {"href": "http://localhost/runbooks/2da1b028-6c1b-41de-b2aa-015c183c4fb4", "rel": "bookmark"}]}, {"uuid": "9246d537-f8f0-4525-be1d-064be77148c7", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/9246d537-f8f0-4525-be1d-064be77148c7", "rel": "self"}, {"href": "http://localhost/runbooks/9246d537-f8f0-4525-be1d-064be77148c7", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_invalid [0.033200s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks?sort_key=extra WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-16a6dd13-e78c-415d-bd17-c4d58c4d722f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/runbooks?sort_key=foo WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-d5b89ce7-2d05-4e11-aefe-46dfb6a717c2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}
GET /v1/runbooks?sort_key=steps WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-71f662bc-2aab-4fca-8dfc-d079f35b2639
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation [0.175707s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_multi [0.091743s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/975737ac-f2e9-42db-a465-d2c228c433a5 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-a1a33886-f5ba-44ad-8377-b0cd01c15167
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "975737ac-f2e9-42db-a465-d2c228c433a5", "created_at": "2025-06-04T21:50:48.333511+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/975737ac-f2e9-42db-a465-d2c228c433a5", "rel": "self"}, {"href": "http://localhost/runbooks/975737ac-f2e9-42db-a465-d2c228c433a5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration1", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_root_non_existent [0.035164s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/e54209c4-caa3-4dd9-b71a-f06ccec3b021 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9d13a471-b80e-464a-80c6-d4c9ca18deb7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_074_service_can_delete_nodes_in_own_project [0.309603s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ab623ba4-ad82-466d-88d8-2251ae70860e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_too_high_index_step_fail [0.064720s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/3571598d-641b-48d8-9939-bc639dcd1148 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-f0bedd31-c166-40c2-88d8-d7bbbe2eb5c5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.296852s] ... 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-61c02680-37d9-4de1-afe4-1b76f076a321
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:48.337734+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_create_allocation_with_node_id [0.232884s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_foo [0.108115s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/9358b7ad-b00d-40b7-acae-67f4db3871d7 WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-5683cc62-0a97-4473-916f-e9b8cdbae4e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_member [0.201619s] ... 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-f567a75f-89bf-4f4d-abda-d95ecb02f599
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_075_owner_manager_cannot_delete_nodes [0.276894s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3f58943d-a089-4250-af0c-dfa8bae9203e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_active_node [0.156639s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestPatch.test_remove_multi [0.206348s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/f844d5e2-5efa-4277-896c-1e105f6b7175 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d8743c5e-043a-4d5f-ba34-c76f5c6a94f2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f844d5e2-5efa-4277-896c-1e105f6b7175", "created_at": "2025-06-04T21:50:48.736110+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/f844d5e2-5efa-4277-896c-1e105f6b7175", "rel": "self"}, {"href": "http://localhost/runbooks/f844d5e2-5efa-4277-896c-1e105f6b7175", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}]}
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node [0.154072s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.241224s] ... 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-56ed1c7d-5951-4c6c-87bc-59316db2d854
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:48.807511+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_076_lessee_admin_cannot_delete_nodes [0.211447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-dbc69f8b-a3fa-42d0-9a43-d12a2410ffb6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_name [0.147522s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/5b3ef9c8-a250-425f-be4f-f7db0b2b11d0 WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-9f4b73c2-7302-428d-920c-d8f888ec098d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_node_in_maintenance [0.141475s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestPatch.test_remove_non_existent_property_fail [0.087622s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/fc534b80-e554-4611-82d5-d318813a03d0 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-67492feb-939d-4adc-be5e-71e3013d7493
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_with_transient_node [0.109508s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_manager_cannot_delete_nodes [0.218577s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-08e3c2bf-97d0-4bc5-b680-df91b3a0b043
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_fail [0.125373s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/53d86929-1e53-4b11-82e3-679d1f01187c WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-3379b180-2abd-4e96-b854-cac55f69ddc0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove non-existent object '1'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node [0.038243s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_admin [0.254821s] ... 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-1b91dd0b-5c92-4b3d-b1f3-62fad392449b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{1} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.075170s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_property_fail [0.088769s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/9855ae9f-418d-48b5-a9f6-02b23eac6ced WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-305eea5d-1b38-4606-8752-a995d75d05f9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_078_third_party_admin_cannot_delete_nodes [0.165883s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3e1dd990-d973-47c1-8ed7-346d5ed1a958
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first [0.080086s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestPatch.test_remove_only_step_fail [0.106484s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/46eb4af7-77bb-47af-a924-4fef71bc9210 WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a88c49c9-0b5d-41a8-be8c-2a0d81b45577
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.050117s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_member [0.203333s] ... 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-f600345d-5bda-4262-9d2d-1f0ef7b9bff8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.084363s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_steps [0.112178s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/ecf93e34-90c6-45fa-af1c-699363989739 WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-dacda8fb-192b-4fdf-a312-9afc83799949
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_079_owner_admin_can_validate_node [0.180342s] ... 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-f3fe49bc-e038-4de4-9a24-e0ed1fab47c7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.041738s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project [0.047700s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_uuid [0.074244s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/678f531b-252f-4633-b02a-05ee1dd14b6b WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-1045c801-9bff-4cc6-b8cc-7806c6c12edc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.078015s] ... ok
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.056136s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_get_observer [0.287915s] ... 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-f22edf8c-a426-4ca3-970d-449471aeb29b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_duplicate_step [0.143559s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/08db24c1-3a6f-4073-8565-a3bcb3996b73 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-b53908bd-9f2f-46f3-99a1-6ea12d6c8929
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_080_owner_manager_can_validate_node [0.237364s] ... 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-eb13af4f-8b9f-4033-bca5-18762dbb0817
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.072428s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoAllocateTestCase.test_with_traits [0.075005s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestPatch.test_replace_empty_step_list_fail [0.139279s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/3cb95d33-f5e0-4ca0-8be3-8431586bf390 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2377060c-4538-4cd2-9030-7fec38e17f5f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.096159s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_lessee_admin_can_validate_node [0.203263s] ... 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-bd34011f-76f4-46d6-8a61-9c239cecc474
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_none [0.138829s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/36d7c97b-2449-497b-baf8-f3ba40c57c1e WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-ae6d84ad-ff1b-4e84-8bcd-093625bd1db0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.082899s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.358634s] ... 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-859974aa-b524-4573-ac20-fdd2879abd61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_too_long [0.146064s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/451b6e8b-9b13-43e4-9664-17b9fca4609f WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-2a4876b0-fa00-43cc-999a-f75b4e68d351
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_082_lessee_manager_can_validate_node [0.206160s] ... 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-e5b980e3-a456-48f5-9295-3cc54965de3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_step_interface_fail [0.096661s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/7adede18-7873-4520-b1e3-13a72d289561 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-ff606388-c21b-46b3-bff0-d1b3b570a3fd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.271134s] ... ok
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(
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_member_can_validate_node [0.184995s] ... 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-032b651d-165a-4716-99e4-a08d805a2416
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_multi [0.137429s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/16ff321a-1e77-4907-97bb-f548f34eff96 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-b49046b6-a1da-4282-9177-d887fb9d3bbd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "16ff321a-1e77-4907-97bb-f548f34eff96", "created_at": "2025-06-04T21:50:50.326700+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/16ff321a-1e77-4907-97bb-f548f34eff96", "rel": "self"}, {"href": "http://localhost/runbooks/16ff321a-1e77-4907-97bb-f548f34eff96", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 3}, {"interface": "raid", "step": "create_configuration1", "args": {}, "order": 3}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 3}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.369057s] ... 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-3a1c5ec9-5506-4dfb-be72-742fba7679a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_name_already_exist [0.122632s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/e95428f8-949b-4038-ae7f-55bc5578aa0a WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-2cc8fa1e-8bf9-4960-a4c1-aebdb84f5d67
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A runbook with UUID e95428f8-949b-4038-ae7f-55bc5578aa0a already exists.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_member_cannot_validate_node [0.179435s] ... 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-01f09432-8be5-4ffc-9c05-74e962f741f9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.237175s] ... ok
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.api.controllers.v1.test_runbook.TestPatch.test_replace_non_existent_step_fail [0.096544s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/d73e7d9d-ac33-4e4b-89e5-05474dc348d2 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-c12e45e7-2dc4-4310-8077-d67742f62c3b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}'. Reason: list assignment index out of range\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.241223s] ... 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-f7b430fc-1902-483e-a2e6-7c48cc93e6f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_step_invalid_interface [0.112083s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/207b75ac-c4b9-4716-aa0c-35e7597d3379 WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-669a5509-5271-448c-87ba-dcec41fd760d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_085_third_party_admin_cannot_validate_node [0.208801s] ... 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-ddb2956c-a4d6-4509-ac22-0b9c0f4d6617
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.290577s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_admin [0.166955s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e5325b3-e852-44cc-9093-588318354848
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope [0.184246s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '3df6d970-0609-43fa-adef-52f53aafc57c', '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/3df6d970-0609-43fa-adef-52f53aafc57c
Openstack-Request-Id: req-94498551-1a65-4044-bf92-e509606da304
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "3df6d970-0609-43fa-adef-52f53aafc57c", "created_at": "2025-06-04T21:50:50.860070+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3df6d970-0609-43fa-adef-52f53aafc57c", "rel": "self"}, {"href": "http://localhost/runbooks/3df6d970-0609-43fa-adef-52f53aafc57c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/3df6d970-0609-43fa-adef-52f53aafc57c 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-df392e33-a532-40a3-bbd3-6a741f8dbcbf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "3df6d970-0609-43fa-adef-52f53aafc57c", "created_at": "2025-06-04T21:50:50.860070+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3df6d970-0609-43fa-adef-52f53aafc57c", "rel": "self"}, {"href": "http://localhost/runbooks/3df6d970-0609-43fa-adef-52f53aafc57c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_admin_can_set_maintenance [0.204553s] ... 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-083ebec0-6d1f-4f5b-94d3-025ae91ef57a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_member [0.167693s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-585bbd31-3772-4ad1-8dbb-4f75c1408488
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope_fails [0.121021s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '34a5f308-475f-4461-b920-888c138d98f1', '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/34a5f308-475f-4461-b920-888c138d98f1
Openstack-Request-Id: req-6a8cce03-a60e-4a3f-8e03-792c5bbd789d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "34a5f308-475f-4461-b920-888c138d98f1", "created_at": "2025-06-04T21:50:51.023518+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/34a5f308-475f-4461-b920-888c138d98f1", "rel": "self"}, {"href": "http://localhost/runbooks/34a5f308-475f-4461-b920-888c138d98f1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/34a5f308-475f-4461-b920-888c138d98f1 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-7c7f4648-85d4-49e7-8b8f-50b504843fef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/owner', 'value': 'projectX', 'op': 'replace'}, {'path': '/public', 'value': True, 'op': 'replace'}]'. Reason: There cannot be an owner for a public runbook\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.249718s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_087_owner_manager_can_set_maintenance [0.213879s] ... 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-2e72a14b-2ed4-497d-b05c-d1d0fed6bcca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_new_owner_for_project_owned_runbook [0.152598s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'aff91834-d67a-4f8b-9c4e-37966f14b5ab', '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/aff91834-d67a-4f8b-9c4e-37966f14b5ab
Openstack-Request-Id: req-5a5865bc-9338-4dbb-8257-b61f18da6088
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "aff91834-d67a-4f8b-9c4e-37966f14b5ab", "created_at": "2025-06-04T21:50:51.142232+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/aff91834-d67a-4f8b-9c4e-37966f14b5ab", "rel": "self"}, {"href": "http://localhost/runbooks/aff91834-d67a-4f8b-9c4e-37966f14b5ab", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/aff91834-d67a-4f8b-9c4e-37966f14b5ab WITH [{'path': '/owner', 'value': 'projectY', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-403b25fe-5c03-4bb3-9c19-2106bb0d4a08
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "aff91834-d67a-4f8b-9c4e-37966f14b5ab", "created_at": "2025-06-04T21:50:51.142232+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectY", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/aff91834-d67a-4f8b-9c4e-37966f14b5ab", "rel": "self"}, {"href": "http://localhost/runbooks/aff91834-d67a-4f8b-9c4e-37966f14b5ab", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_get_observer [0.176119s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8fd118b7-997a-4b55-9c00-6e7287c37ee2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_admin [0.108943s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cc40d308-7d35-4ba9-aa24-7c63be78df18
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "8843cde7-2413-4488-98f3-9b78bbfa3d7f", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8843cde7-2413-4488-98f3-9b78bbfa3d7f", "rel": "self"}, {"href": "http://localhost/volume/connectors/8843cde7-2413-4488-98f3-9b78bbfa3d7f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_lessee_admin_can_set_maintenance [0.199444s] ... 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-0eddb5cb-1e34-4477-8000-991f9ea2a470
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.317644s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope [0.217892s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'c84edc2a-8404-48ef-a495-862568c56812', '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/c84edc2a-8404-48ef-a495-862568c56812
Openstack-Request-Id: req-c0b766ab-583a-4613-9b9b-32144f6071e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c84edc2a-8404-48ef-a495-862568c56812", "created_at": "2025-06-04T21:50:51.341699+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c84edc2a-8404-48ef-a495-862568c56812", "rel": "self"}, {"href": "http://localhost/runbooks/c84edc2a-8404-48ef-a495-862568c56812", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/c84edc2a-8404-48ef-a495-862568c56812 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6cf291f1-ebaf-4a42-8095-8f901972e313
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c84edc2a-8404-48ef-a495-862568c56812", "created_at": "2025-06-04T21:50:51.341699+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c84edc2a-8404-48ef-a495-862568c56812", "rel": "self"}, {"href": "http://localhost/runbooks/c84edc2a-8404-48ef-a495-862568c56812", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_member [0.158133s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-839cc2bb-9f83-4062-b3b9-876c0b5705a7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_lessee_manager_can_set_maintenance [0.227201s] ... 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-be7d6c0a-4155-4a5e-96fc-cf93d00dbe4f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope_fails_if_public [0.184002s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '1ba8806a-6efa-49f8-9ad0-978901e2e24b', '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/1ba8806a-6efa-49f8-9ad0-978901e2e24b
Openstack-Request-Id: req-337a27f1-8d8d-4826-aa0a-249632f7f901
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1ba8806a-6efa-49f8-9ad0-978901e2e24b", "created_at": "2025-06-04T21:50:51.569401+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/1ba8806a-6efa-49f8-9ad0-978901e2e24b", "rel": "self"}, {"href": "http://localhost/runbooks/1ba8806a-6efa-49f8-9ad0-978901e2e24b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/1ba8806a-6efa-49f8-9ad0-978901e2e24b WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-fca11aca-64a9-4267-b193-17c65b8e5e4b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/owner', 'value': 'projectX', 'op': 'replace'}]'. Reason: There cannot be an owner for a public runbook\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_get_observer [0.171633s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f1c26542-1510-49ac-90c8-4406a508bbae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "688b640d-0599-469d-88d1-dd0811c65a19", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/688b640d-0599-469d-88d1-dd0811c65a19", "rel": "self"}, {"href": "http://localhost/volume/connectors/688b640d-0599-469d-88d1-dd0811c65a19", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_admin [0.096250s] ... 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/60a6201c-35d5-4b41-99f3-84429faf8f32
Openstack-Request-Id: req-7796bb62-7d28-4191-9a7e-6b1ab8ad1ed2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "60a6201c-35d5-4b41-99f3-84429faf8f32", "created_at": "2025-06-04T21:50:51.738730+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/60a6201c-35d5-4b41-99f3-84429faf8f32", "rel": "self"}, {"href": "http://localhost/volume/connectors/60a6201c-35d5-4b41-99f3-84429faf8f32", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_project_owned_runbook_public [0.215559s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '473bc2af-7cac-4957-9f21-7faceb15b69d', '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/473bc2af-7cac-4957-9f21-7faceb15b69d
Openstack-Request-Id: req-bebf4828-4729-427f-890d-3b4effc99fea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "473bc2af-7cac-4957-9f21-7faceb15b69d", "created_at": "2025-06-04T21:50:51.736159+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/473bc2af-7cac-4957-9f21-7faceb15b69d", "rel": "self"}, {"href": "http://localhost/runbooks/473bc2af-7cac-4957-9f21-7faceb15b69d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/473bc2af-7cac-4957-9f21-7faceb15b69d WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-777830ca-9957-4a80-9dd4-be8407da653c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "473bc2af-7cac-4957-9f21-7faceb15b69d", "created_at": "2025-06-04T21:50:51.736159+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/473bc2af-7cac-4957-9f21-7faceb15b69d", "rel": "self"}, {"href": "http://localhost/runbooks/473bc2af-7cac-4957-9f21-7faceb15b69d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_member [0.090772s] ... 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-cccc3b33-7d47-4bcc-802d-eb1f5c5e570f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic [0.435113s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_member_can_set_maintenance [0.273405s] ... 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-dd406b42-70c6-467e-9c61-4d2c8f8bd062
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_connectors_post_observer [0.088290s] ... 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-0067ff9e-84c3-4e09-a940-e898eca21967
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_public_system_scope [0.215562s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/7ad98cc7-3478-404a-b226-5bf6040ee1f7 WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-df6d9b03-4c2f-456c-9919-1c1ea06ff18a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "7ad98cc7-3478-404a-b226-5bf6040ee1f7", "created_at": "2025-06-04T21:50:51.927884+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7ad98cc7-3478-404a-b226-5bf6040ee1f7", "rel": "self"}, {"href": "http://localhost/runbooks/7ad98cc7-3478-404a-b226-5bf6040ee1f7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_member_cannot_set_maintenance [0.199859s] ... 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-6779bb67-6b7e-4867-bab0-86fe8bc8b613
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_third_party_admin_cannot_set_maintenance [0.165663s] ... 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-10f81eea-8fb8-4cde-9001-26cf3e294b79
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track [0.414460s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_runbook.TestPatch.test_unset_public_system_scope [0.230038s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE2', 'uuid': 'cbed9eee-721e-4bd0-b84b-f658ec2d569a', '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/cbed9eee-721e-4bd0-b84b-f658ec2d569a
Openstack-Request-Id: req-16a7f2bc-ff2f-4197-b7f6-73d46f64edf6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "cbed9eee-721e-4bd0-b84b-f658ec2d569a", "created_at": "2025-06-04T21:50:52.188934+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cbed9eee-721e-4bd0-b84b-f658ec2d569a", "rel": "self"}, {"href": "http://localhost/runbooks/cbed9eee-721e-4bd0-b84b-f658ec2d569a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
PATCH /v1/runbooks/cbed9eee-721e-4bd0-b84b-f658ec2d569a WITH [{'path': '/public', 'value': False, 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6712aee1-8e6d-4788-84ce-81501c7bc255
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "cbed9eee-721e-4bd0-b84b-f658ec2d569a", "created_at": "2025-06-04T21:50:52.188934+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cbed9eee-721e-4bd0-b84b-f658ec2d569a", "rel": "self"}, {"href": "http://localhost/runbooks/cbed9eee-721e-4bd0-b84b-f658ec2d569a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.432672s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/49dea34b-5469-4dd3-9306-68ebac400901 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f94771c8-e423-4e60-ad8a-d34e66add2c5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "49dea34b-5469-4dd3-9306-68ebac400901", "created_at": "2025-06-04T21:50:51.984754+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/49dea34b-5469-4dd3-9306-68ebac400901", "rel": "self"}, {"href": "http://localhost/volume/connectors/49dea34b-5469-4dd3-9306-68ebac400901", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.084036s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/967d811e-8d12-4bdd-b9f4-dc7a885b7a63 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ed09880b-b86c-49af-84c1-36891d4ba1a9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 967d811e-8d12-4bdd-b9f4-dc7a885b7a63 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_admin_can_unset_maintenance [0.205243s] ... 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-8e0ade06-3502-4b29-bab0-ff5703cbad33
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id [0.172876s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/2c3adf00-3f64-4a76-ab9d-301579e2a1c5 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0f5d751d-e08d-49c0-b9b0-4ffe3e95cbbf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "2c3adf00-3f64-4a76-ab9d-301579e2a1c5", "created_at": "2025-06-04T21:50:52.367585+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2c3adf00-3f64-4a76-ab9d-301579e2a1c5", "rel": "self"}, {"href": "http://localhost/runbooks/2c3adf00-3f64-4a76-ab9d-301579e2a1c5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.105668s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/a633f259-c3fe-4202-83d1-723069818c06 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a6359337-e682-4561-8bd1-9f91bdad32c8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a633f259-c3fe-4202-83d1-723069818c06", "created_at": "2025-06-04T21:50:52.524695+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a633f259-c3fe-4202-83d1-723069818c06", "rel": "self"}, {"href": "http://localhost/volume/connectors/a633f259-c3fe-4202-83d1-723069818c06", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id_invalid_api_version [0.106285s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/ce7037bf-9d13-4ebd-880b-c5eb611ba5a4 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_owner_manager_can_unset_maintenance [0.175119s] ... 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-5aa70604-3059-42c4-8eec-57c3f9b7e69b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait [0.391741s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.140943s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/304e6712-ecb5-4e44-840e-9aefebd60af3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-8501371b-efc8-4bd6-95e9-1fe31edc2602
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.089254s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/5309f64e-55e1-4621-8a45-e2a8d6d4f8d2 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2e05d62b-e365-4688-b1b2-3e70e351419f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 5309f64e-55e1-4621-8a45-e2a8d6d4f8d2 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_095_lessee_admin_can_unset_maintenance [0.172343s] ... 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-d22e5fbf-d9ae-4e29-b2e2-1a6e25498d64
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.093232s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/b66bd32e-fe3f-4039-8745-55f9782c3e81 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-836a52c4-75de-429e-a3e9-adb074161175
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.115631s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/a63a16f0-52d5-47f1-a4c9-5e9e0d0f4daf GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-2842deaf-25ad-4ed6-b7db-35215684199b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_096_lessee_manager_can_unset_maintenance [0.207647s] ... 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-29749ad4-4031-47b1-a1fa-8d7bde935066
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.100281s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/abf6e5e7-da39-48e2-9297-c27a3b97bf67 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8c057567-5cca-4647-ac84-876dde880a33
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector abf6e5e7-da39-48e2-9297-c27a3b97bf67 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_member_can_unset_maintnenance [0.183124s] ... 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-75fe2f08-7140-4358-96bc-58c49d760c26
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.197160s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/af200de3-f1ab-442d-950c-69e0d668e595 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3604cc08-4c41-4f02-8f41-38db457c9069
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name [0.733497s] ... 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-0d13ae52-4f85-4fd8-93ce-360f240a86db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6ba4d483-ca5b-40f5-8e8e-bb01f14000a1", "created_at": "2025-06-04T21:50:53.276479+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6ba4d483-ca5b-40f5-8e8e-bb01f14000a1", "rel": "self"}, {"href": "http://localhost/runbooks/6ba4d483-ca5b-40f5-8e8e-bb01f14000a1", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name_old_api_version [0.065945s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/CUSTOM_DT1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_098_lessee_member_cannot_unset_maintenance [0.190708s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3c6416bd-7642-4de2-8967-b61be29bc65f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_name_standard_trait [0.074763s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/4cbf68e6-bb65-47b9-8340-d5933ff2d53e WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6af6201d-3447-4405-ae65-a1f4a7c7fc7f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "4cbf68e6-bb65-47b9-8340-d5933ff2d53e", "created_at": "2025-06-04T21:50:53.438566+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4cbf68e6-bb65-47b9-8340-d5933ff2d53e", "rel": "self"}, {"href": "http://localhost/runbooks/4cbf68e6-bb65-47b9-8340-d5933ff2d53e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_not_found [0.034511s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/37e3b7ea-e1c0-4ba4-ac46-988380a83241 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fd6538d3-0fc0-49a5-a083-8a4ecf89638e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook 37e3b7ea-e1c0-4ba4-ac46-988380a83241 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_admin [0.225015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4fe314ac-844c-4bd5-bb19-845313a527df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "e8c0ccac-71c4-4f42-9111-d61349c73559", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e8c0ccac-71c4-4f42-9111-d61349c73559", "rel": "self"}, {"href": "http://localhost/volume/targets/e8c0ccac-71c4-4f42-9111-d61349c73559", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_project_scope [0.061947s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/88997bef-1978-41b1-8190-201afd451857 WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f47898af-e5e2-49f6-8f9f-be22d9d75503
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "88997bef-1978-41b1-8190-201afd451857", "created_at": "2025-06-04T21:50:53.531659+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/88997bef-1978-41b1-8190-201afd451857", "rel": "self"}, {"href": "http://localhost/runbooks/88997bef-1978-41b1-8190-201afd451857", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_system_scope [0.073547s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/04e0a93d-82da-4666-b78d-a3996292df10 WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c58c7b56-77dc-42e5-b09a-037503fd9f59
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "04e0a93d-82da-4666-b78d-a3996292df10", "created_at": "2025-06-04T21:50:53.613029+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/04e0a93d-82da-4666-b78d-a3996292df10", "rel": "self"}, {"href": "http://localhost/runbooks/04e0a93d-82da-4666-b78d-a3996292df10", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_third_party_admin_cannot_unset_maintenance [0.251362s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/e542bb01-8aca-4ac5-9ab9-50f0f0bbee40/maintenance GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c4cc116b-30d5-4500-922d-d7a297a82b1e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node e542bb01-8aca-4ac5-9ab9-50f0f0bbee40 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create [0.046890s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '2fedb679-681c-482c-bb0b-88e9b4386f8b', '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/2fedb679-681c-482c-bb0b-88e9b4386f8b
Openstack-Request-Id: req-8cde862e-7d45-4863-8935-b5fc3a158605
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "2fedb679-681c-482c-bb0b-88e9b4386f8b", "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/2fedb679-681c-482c-bb0b-88e9b4386f8b", "rel": "self"}, {"href": "http://localhost/runbooks/2fedb679-681c-482c-bb0b-88e9b4386f8b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/2fedb679-681c-482c-bb0b-88e9b4386f8b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-951a5fb3-b59a-42f5-b5a0-ad389c3a23e3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "2fedb679-681c-482c-bb0b-88e9b4386f8b", "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/2fedb679-681c-482c-bb0b-88e9b4386f8b", "rel": "self"}, {"href": "http://localhost/runbooks/2fedb679-681c-482c-bb0b-88e9b4386f8b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [1.052313s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_member [0.189288s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-be96ebe6-a2b1-436c-80d8-0fe9ecc8eae7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_complex_step_args [0.061176s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '86485073-0418-4164-9870-0d2ae109bf95', '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/86485073-0418-4164-9870-0d2ae109bf95
Openstack-Request-Id: req-bb7cb7f8-5348-408b-8ae5-ef79c2d6dadf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "86485073-0418-4164-9870-0d2ae109bf95", "created_at": "2025-06-04T21:50:53.748181+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/86485073-0418-4164-9870-0d2ae109bf95", "rel": "self"}, {"href": "http://localhost/runbooks/86485073-0418-4164-9870-0d2ae109bf95", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_doesnt_contain_id [0.052816s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '2afaa464-6930-4038-a6e9-a8b8567d0289', '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/2afaa464-6930-4038-a6e9-a8b8567d0289
Openstack-Request-Id: req-f9287e40-3c4c-42f0-815e-d4ea0479ee05
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "2afaa464-6930-4038-a6e9-a8b8567d0289", "created_at": "2025-06-04T21:50:53.796161+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2afaa464-6930-4038-a6e9-a8b8567d0289", "rel": "self"}, {"href": "http://localhost/runbooks/2afaa464-6930-4038-a6e9-a8b8567d0289", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/2afaa464-6930-4038-a6e9-a8b8567d0289 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a90bed7b-37c6-422b-b279-b115bfaaae6e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "2afaa464-6930-4038-a6e9-a8b8567d0289", "created_at": "2025-06-04T21:50:53.796161+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/2afaa464-6930-4038-a6e9-a8b8567d0289", "rel": "self"}, {"href": "http://localhost/runbooks/2afaa464-6930-4038-a6e9-a8b8567d0289", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_error [0.071101s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '312a686d-6d4b-401e-bcf5-a03922ad058a', '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-3b5e998b-d398-409d-89bc-de7ea34bfee3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_get_observer [0.185270s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ebbd31a-a733-48c3-ba4f-e4bfda9e9169
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "83b9f0b7-924d-4fd1-8d80-9a04cd4e10f8", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/83b9f0b7-924d-4fd1-8d80-9a04cd4e10f8", "rel": "self"}, {"href": "http://localhost/volume/targets/83b9f0b7-924d-4fd1-8d80-9a04cd4e10f8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_generate_uuid [0.061642s] ... 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/921faa79-f3a8-4026-8908-e4af0e45045f
Openstack-Request-Id: req-292d6b10-9b56-469a-83d2-91e52e0f6aaf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "921faa79-f3a8-4026-8908-e4af0e45045f", "created_at": "2025-06-04T21:50:53.933211+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/921faa79-f3a8-4026-8908-e4af0e45045f", "rel": "self"}, {"href": "http://localhost/runbooks/921faa79-f3a8-4026-8908-e4af0e45045f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/921faa79-f3a8-4026-8908-e4af0e45045f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-431b6c88-9e85-4743-aa3e-b7e672375461
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "921faa79-f3a8-4026-8908-e4af0e45045f", "created_at": "2025-06-04T21:50:53.933211+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/921faa79-f3a8-4026-8908-e4af0e45045f", "rel": "self"}, {"href": "http://localhost/runbooks/921faa79-f3a8-4026-8908-e4af0e45045f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
None
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_admin_can_set_boot_device [0.292089s] ... 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-8fba9a97-16c4-4a3c-a635-bd41c93d7cd8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_api_version [0.032311s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '1dd1d01c-2d90-485e-b6b1-aa8f2e1aa994', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 405 Method Not Allowed
Content-Type: application/json
{"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.270118s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_runbook.TestPost.test_create_invalid_field_empty_steps [0.071732s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '891f0020-cfd5-48a8-9fc0-55624a962fa7', 'steps': [], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-62efb9a6-929a-4dbf-8259-7dc1155f3b79
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is too short\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_extra [0.040846s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'c421d90b-af23-4d82-9f27-a8523281a30a', '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-4299006c-2364-4acd-ab85-4f80d3c4747c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'object', 'null'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_admin [0.222744s] ... 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/d423db29-2914-4002-8d9f-b135069b53b3
Openstack-Request-Id: req-914d3dbe-9c2a-45c6-b8e6-9e50adc23985
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d423db29-2914-4002-8d9f-b135069b53b3", "created_at": "2025-06-04T21:50:54.122326+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d423db29-2914-4002-8d9f-b135069b53b3", "rel": "self"}, {"href": "http://localhost/volume/targets/d423db29-2914-4002-8d9f-b135069b53b3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_foo [0.051954s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '740a5dd7-272c-4c41-9c3c-2593479c20a8', '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-09eaf760-4889-4e81-adf1-4e3d557a802f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name [0.059033s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 1, 'uuid': 'b0a7ae50-3ce9-4fb9-acd5-584b6638a953', '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-b062de91-e715-436d-bb52-2da0623fcc2c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.258518s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name_none [0.049734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': None, 'uuid': '907b0d73-d41f-4f0a-bd86-276d5bebefe7', '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-eeedc376-026b-40b5-b442-8283942d7bde
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: None is not of type 'string'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_owner_manager_can_set_boot_device [0.296174s] ... 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-01587ab6-4b82-4dfe-986d-e49466d04f23
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_steps [0.075993s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '56d78b4a-02b9-468e-ba17-005c68e65360', 'steps': {}, 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-a3103659-238d-4100-a3cf-b5e53eeb19eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: {} is not of type 'array'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_member [0.206514s] ... 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-abcad7d3-6384-4a18-9562-65ede0763177
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args1 [0.043041s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'be1718c8-8600-4e93-8f5a-a67600259159', '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-f29fecda-bb20-48ac-9880-cb18c43e52ce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args2 [0.096903s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'a900ebb4-259e-497b-accf-38a002144707', '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-383e7eea-3105-4219-9a9d-1713b9b3390c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is not of type 'object'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.238230s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_targets_post_observer [0.196436s] ... 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-0d9fe912-20b8-415b-ac0f-bc8f92353dbd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_foo [0.090965s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'b723257d-0682-449f-976a-cad06a031709', '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-e08bc42a-766d-4b0f-95e6-b43848a074f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_lessee_admin_cannot_set_boot_device [0.310716s] ... 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-9ea24cfc-febd-4d9f-8734-43e5c8e94e42
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy [0.151017s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestPost.test_create_invalid_step_field_interface1 [0.109706s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'bddb3d93-6e29-4266-9537-daf2789fde8f', '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-cfac4f37-9adf-455f-bd2e-7b204b12e720
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [3] is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.222765s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/ab2a16e6-c8ba-4f6b-be0a-361dfbce0861 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1aa82fec-476e-4ada-82fd-7f06add5e445
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ab2a16e6-c8ba-4f6b-be0a-361dfbce0861", "created_at": "2025-06-04T21:50:54.660665+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/ab2a16e6-c8ba-4f6b-be0a-361dfbce0861", "rel": "self"}, {"href": "http://localhost/volume/targets/ab2a16e6-c8ba-4f6b-be0a-361dfbce0861", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot [0.134909s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_103_lessee_manager_cannot_set_boot_device [0.219814s] ... 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-64945a8d-73fe-4283-9647-d8b64e924a2c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_interface2 [0.129752s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '4b19f674-4b62-49cd-ab1b-1a34408ffec9', '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-edc1aa67-7044-41be-a3c8-ef61f050358e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_no_skip_step [0.165432s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestPost.test_create_invalid_step_field_negative_order [0.123415s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'c6cf7fb5-83e8-4288-bd5f-5f0c740c4a92', '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-aef557f6-23cf-4e8f-a0ef-32d285e5c10b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: -1 is less than the minimum of 0\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_member [0.205260s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/18401bab-fa19-42f7-a1e9-20fcc59477fe WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-84e93720-97a9-455c-9524-3529d233fd50
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 18401bab-fa19-42f7-a1e9-20fcc59477fe could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_member_cannot_set_boot_device [0.185712s] ... 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-ddd8e955-5be9-4890-b52e-93f5302e15ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_order [0.106351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '382cb288-eb12-48c5-808a-212ca2effb79', '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-f1275173-058c-45fe-ad9d-ea482656d833
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation [0.181305s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestPost.test_create_invalid_step_field_step [0.091997s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '4f7211f8-5ad0-4998-aa21-08d724be7248', '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-07813fb3-fcbc-4eb1-b29d-cc0550b33993
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_member_cannot_set_boot_device [0.185293s] ... 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-b9ef8b56-927a-4a98-9f2b-515d99aa4622
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.229087s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/e6d3b409-b8fb-4bf1-ba2c-c7518a7cc9ca WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-223f5e0c-bca4-429e-bd10-8d77a5c02c1d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e6d3b409-b8fb-4bf1-ba2c-c7518a7cc9ca", "created_at": "2025-06-04T21:50:55.075547+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/e6d3b409-b8fb-4bf1-ba2c-c7518a7cc9ca", "rel": "self"}, {"href": "http://localhost/volume/targets/e6d3b409-b8fb-4bf1-ba2c-c7518a7cc9ca", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_long_name [0.100711s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'd9ce57f0-dfb8-481a-9d58-051cac28e4fa', '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/d9ce57f0-dfb8-481a-9d58-051cac28e4fa
Openstack-Request-Id: req-aa30e230-87de-4327-9f94-091b746ab9dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d9ce57f0-dfb8-481a-9d58-051cac28e4fa", "created_at": "2025-06-04T21:50:55.242883+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d9ce57f0-dfb8-481a-9d58-051cac28e4fa", "rel": "self"}, {"href": "http://localhost/runbooks/d9ce57f0-dfb8-481a-9d58-051cac28e4fa", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_name_invalid_too_long [0.124000s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': 'a8e142f2-8db3-4876-92d6-32e09f5f308f', '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-bb55d498-ce8b-47e4-8f68-df1e84f7bbbc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy [0.260098s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_third_party_admin_cannot_set_boot_device [0.202568s] ... 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-74e8c44f-db19-4fd8-94a5-977c192adac2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.214976s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/2a4104e2-8b37-45b1-953e-6032dba581f3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-dbfd29ba-08a0-4b5c-a242-99c55786385b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_name [0.143015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'uuid': '145a6c01-dbf4-4cde-95ae-73eb6e473e97', '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-3427dbab-0dd4-4c3a-b3ff-99ffc2676f67
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'name' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.177172s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/837f60e3-5c48-4275-99de-4c9b883912a4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b35b9f81-f5cf-4933-b4c8-8f3b30564d17
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 837f60e3-5c48-4275-99de-4c9b883912a4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.265119s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_steps [0.154974s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '58526d1d-ce94-486e-a3ac-21540978628c', 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-e0887512-2c16-4694-a22f-0c376084486b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'steps' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.196869s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/18fc6a86-104c-44ae-985c-797544278b51 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6603b404-eb4b-48d7-b230-e910f16d7c54
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_interface [0.128092s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'fd6f99a6-2a16-483e-99ad-c414bdfb0614', '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-dbbd6e86-317f-4bbf-9a20-4be902289b78
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'interface' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.275403s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_order [0.131345s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'cb085441-59b1-44ae-a273-433e1dce970a', '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-dcc289d1-0f2c-4754-8ef8-8536427a50b1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'order' is a required property\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.193611s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/bfc9384d-0306-4791-8251-d2f20175f21a GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-af4ea3bc-a1e3-4eb4-b435-469409c7863d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_step [0.149678s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '41d18e31-2d5f-4d41-8719-b3b358c7307e', '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-bb88e72d-c491-42f8-8db3-27a9e59feefa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'step' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception [0.250121s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.202312s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/5b28eeb6-d1f7-4638-ae5d-9fb66cea28cf GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-39f6d213-bcb2-4c4c-a472-c974afdcbadc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 5b28eeb6-d1f7-4638-ae5d-9fb66cea28cf could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_public_runbook_project_scope_fails [0.143432s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '4d621056-5b81-4d44-9818-e008ddcc9f96', '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-70b464f6-bb3e-436e-b1fa-a5e37f18c450
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a runbook as a project scoped admin with an owner other than your own project.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.211544s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/fc07112a-0c3c-496d-91fc-13445c552e60 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f0299fe5-0105-4596-9f23-a3bdebc6c2de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_project_scope_fails [0.139258s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '0acdc0b4-3f9f-45ef-a175-213f50077563', '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-b6b3062b-439e-4df7-a46b-ee3c529b88f8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a runbook as a project scoped admin with an owner other than your own project.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_owner_admin_can_get_boot_device [1.046655s] ... 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-b2a97a20-666d-4ffa-b2ae-407624344506
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.317550s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_system_scope [0.135280s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'd430ab53-828c-4486-9691-825a19118273', '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/d430ab53-828c-4486-9691-825a19118273
Openstack-Request-Id: req-1553e00f-eecd-48d5-bffc-dc761db4a4f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d430ab53-828c-4486-9691-825a19118273", "created_at": "2025-06-04T21:50:56.514625+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d430ab53-828c-4486-9691-825a19118273", "rel": "self"}, {"href": "http://localhost/runbooks/d430ab53-828c-4486-9691-825a19118273", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/d430ab53-828c-4486-9691-825a19118273 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2954529f-4963-428e-9df5-9bb1ddd61efb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d430ab53-828c-4486-9691-825a19118273", "created_at": "2025-06-04T21:50:56.514625+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d430ab53-828c-4486-9691-825a19118273", "rel": "self"}, {"href": "http://localhost/runbooks/d430ab53-828c-4486-9691-825a19118273", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_manager_can_get_boot_device [0.166592s] ... 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-7ea9c2e1-9f76-485b-8319-be097c2dba14
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_admin [0.238478s] ... 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-7c43cf68-af6c-428d-b3c1-399dc2ac52d8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_project_scope [0.113679s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '186bdfb5-475d-444a-bb3d-0b2e7163a8e1', '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/186bdfb5-475d-444a-bb3d-0b2e7163a8e1
Openstack-Request-Id: req-6ec4853e-db52-4d3d-8313-daf6f5cd8027
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "186bdfb5-475d-444a-bb3d-0b2e7163a8e1", "created_at": "2025-06-04T21:50:56.639476+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/186bdfb5-475d-444a-bb3d-0b2e7163a8e1", "rel": "self"}, {"href": "http://localhost/runbooks/186bdfb5-475d-444a-bb3d-0b2e7163a8e1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/186bdfb5-475d-444a-bb3d-0b2e7163a8e1 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a0c1b20d-7b48-44e6-84f8-15d9a703a93b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "186bdfb5-475d-444a-bb3d-0b2e7163a8e1", "created_at": "2025-06-04T21:50:56.639476+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/186bdfb5-475d-444a-bb3d-0b2e7163a8e1", "rel": "self"}, {"href": "http://localhost/runbooks/186bdfb5-475d-444a-bb3d-0b2e7163a8e1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_active [0.211785s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestPost.test_create_runbook_system_scope [0.117314s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '943593af-8ea3-4265-a0bc-e3c22b0fc30f', '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/943593af-8ea3-4265-a0bc-e3c22b0fc30f
Openstack-Request-Id: req-253a3a7f-e61c-41c8-b145-8eb39a154f18
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "943593af-8ea3-4265-a0bc-e3c22b0fc30f", "created_at": "2025-06-04T21:50:56.755951+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/943593af-8ea3-4265-a0bc-e3c22b0fc30f", "rel": "self"}, {"href": "http://localhost/runbooks/943593af-8ea3-4265-a0bc-e3c22b0fc30f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
GET /v1/runbooks/943593af-8ea3-4265-a0bc-e3c22b0fc30f WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-469eaa02-1a9f-4dee-be66-ff0a6e20ba5e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "943593af-8ea3-4265-a0bc-e3c22b0fc30f", "created_at": "2025-06-04T21:50:56.755951+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/943593af-8ea3-4265-a0bc-e3c22b0fc30f", "rel": "self"}, {"href": "http://localhost/runbooks/943593af-8ea3-4265-a0bc-e3c22b0fc30f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_admin_cannot_get_boot_device [0.206039s] ... 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-ac197b6a-1b1e-4606-98b2-144f853998bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_standard_trait_name [0.041996s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '876ee403-ce8e-4373-82a1-1eb2c286240b', '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/876ee403-ce8e-4373-82a1-1eb2c286240b
Openstack-Request-Id: req-9dec9303-3055-4a66-bbe8-804eca386f78
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "876ee403-ce8e-4373-82a1-1eb2c286240b", "created_at": "2025-06-04T21:50:56.825134+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/876ee403-ce8e-4373-82a1-1eb2c286240b", "rel": "self"}, {"href": "http://localhost/runbooks/876ee403-ce8e-4373-82a1-1eb2c286240b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_member [0.193834s] ... 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-6e274c02-ad7c-4610-bd6c-adfe7e1a95bc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_wait [0.150305s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbook.TestPost.test_create_step_string_order [0.061962s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'b25249c9-686f-4de2-95a0-529918ff3e5d', '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/b25249c9-686f-4de2-95a0-529918ff3e5d
Openstack-Request-Id: req-2bc656e0-e55a-46e3-8808-f305022721f6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b25249c9-686f-4de2-95a0-529918ff3e5d", "created_at": "2025-06-04T21:50:56.896650+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b25249c9-686f-4de2-95a0-529918ff3e5d", "rel": "self"}, {"href": "http://localhost/runbooks/b25249c9-686f-4de2-95a0-529918ff3e5d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": "1"}]}
{0} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_steps_invalid_duplicate [0.093732s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '473c860a-7290-4292-8878-bf1dd6679f02', '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-9badbd2a-e389-4b8a-8afb-7cdadeb4bf83
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_get_observer [0.181755s] ... 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-6a9412f5-ab0b-41fe-92d9-31570c32f6f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.191744s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve [0.062805s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail [0.066190s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_owner_member_cannot_get_boot_device [0.306862s] ... 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-670949e2-db62-48cf-ad5c-76861405f361
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot [0.113582s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.092374s] ... ok
{1} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail [0.133143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve [0.079195s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.291594s] ... 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-8e519265-79ad-4d91-bb08-ee8744277099
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "1a4f4931-7317-4f90-ac90-0372cc1f8e00", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1a4f4931-7317-4f90-ac90-0372cc1f8e00", "rel": "self"}, {"href": "http://localhost/volume/connectors/1a4f4931-7317-4f90-ac90-0372cc1f8e00", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.064642s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.107561s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_lessee_member_cannot_get_boot_device [0.288169s] ... 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-77d24aec-10b2-41c3-9381-36c0d4d19e81
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound [0.066671s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.097434s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden [0.061152s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.196601s] ... 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-30dbbc6c-1b68-41b8-a59d-9fedcee3802a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix [0.057078s] ... ok
{1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked [0.112845s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy [0.051969s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden [0.044293s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy [0.055997s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.196830s] ... 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-3512aa15-fc65-4a7b-a3c4-ef3c7e70f890
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "30885d6d-703d-4dc6-8fd8-8d7d9250ce58", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/30885d6d-703d-4dc6-8fd8-8d7d9250ce58", "rel": "self"}, {"href": "http://localhost/volume/connectors/30885d6d-703d-4dc6-8fd8-8d7d9250ce58", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.137290s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden [0.058756s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_112_owner_reader_cannot_get_boot_device [0.352617s] ... 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-baba0641-0022-479c-b386-3cc038caa99a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project [0.048681s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin [0.062429s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.245210s] ... 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-ab1e0ea3-cc81-4756-ae25-c3a9340cf3dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "5292ba65-4d16-4d77-a07a-3f8f7b0fdb5c", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5292ba65-4d16-4d77-a07a-3f8f7b0fdb5c", "rel": "self"}, {"href": "http://localhost/volume/targets/5292ba65-4d16-4d77-a07a-3f8f7b0fdb5c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_lessee_reader_cannot_get_boot_device [0.276231s] ... 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-9ed90d94-0d38-4f19-b136-e51bc12b0cf7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_114_third_party_admin_cannot_get_boot_device [0.291827s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1dc7fc72-f002-4860-968c-3a8c7ee6b555/management/boot_device WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-add027d9-1ae5-4b7c-81ec-6dacfc9d9b11
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1dc7fc72-f002-4860-968c-3a8c7ee6b555 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.741893s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.CreateNodeTestCase.test_create_node [0.078503s] ... ok
{1} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.058233s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_owner_admin_can_get_supported_boot_devices [0.306164s] ... 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-d3435635-8117-49de-8ff7-8d473770aa3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.096911s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.067734s] ... ok
{0} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume [0.996873s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-51b4fc5c-c713-44fb-a6f2-bcacc87ccafe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
GET /v1/volume/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ef059f61-2a0e-4b22-a271-ea42ad7cd7d9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
GET /volume/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-807c88e7-9807-4f01-a326-33e3ce2b59f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e24f7a98-0cd1-4af2-ac6c-806db333a985
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": []}
GET /volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8473011f-e46d-44a5-9a13-f8c343965d9f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": []}
GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ba887709-18b6-45f7-96dd-54838c91f5fe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": []}
GET /volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3cd07d7b-1a4f-4db2-9732-3a559721fe1a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": []}
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.103675s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_116_owner_manager_can_get_supported_boot_devices [0.286253s] ... 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-95616474-37bf-4c29-9e29-600c53d15629
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.087183s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/ WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-24459941-0b51-49a2-ae6d-ba8ad8c78b22
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_member [1.048424s] ... 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-fd07e521-1df8-4888-9053-a3edc8771c6e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.136839s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_volume_connector.TestDelete.test_delete_volume_connector_byid [0.118287s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content
Openstack-Request-Id: req-9bcc609c-1021-4a67-a04d-1193536c8e83
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.120784s] ... 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-1c349f1f-dff9-4201-9e54-4c2343162dcb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "6e02147a-8d11-4939-bffe-8d81547d38ee", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6e02147a-8d11-4939-bffe-8d81547d38ee", "rel": "self"}, {"href": "http://localhost/volume/targets/6e02147a-8d11-4939-bffe-8d81547d38ee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_117_owner_member_cannot_get_supported_boot_devices [0.248124s] ... 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-5905d03a-fea8-42f6-8b1a-8fbed9d93b63
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed [0.184347s] ... ok
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.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.120124s] ... 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_admin [0.120759s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3cde1a4c-8b5d-4c03-8d74-841828ed780d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"drivers": []}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_member [0.091333s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-397f7452-ba0b-4f03-8f3b-5fb5803429b2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone [0.173948s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.167292s] ... 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-232c16ac-d5a1-49e5-9821-431c386c3937
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_lessee_admin_cannot_get_supported_boot_devices [0.241769s] ... 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-be1ba274-3cec-4928-b638-6eefa5f27569
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_get_observer [0.110504s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5742b056-2404-481d-bccd-9e95070be54d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"drivers": []}
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked [0.093501s] ... ok
{1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.092387s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.180734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict
Content-Type: application/json
Openstack-Request-Id: req-1aca12aa-7312-4c08-b3cc-34172ec17018
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_manager_cannot_get_supported_boot_devices [0.158863s] ... 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-3d4f429c-9f3c-493f-8178-688a97f6438b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_admin [0.220106s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8fe5992e-d80b-46b6-9b15-cc86c0dad2bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector [0.178893s] ... 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-d0253688-5e1d-45ae-bb5d-acf7867ab648
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-73810a1a-fb38-44ae-9c6b-a8213994dc03
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service [0.234950s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_third_party_admin_cannot_get_supported_boot_devices [0.193289s] ... 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-611042bd-7b80-4cdd-ae89-003cd08595b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_member [0.232843s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-71f772de-f5c5-47a3-a7a5-1e69a897c108
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.154615s] ... 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-65569bb3-acb9-4aff-a1ce-b54cd6747b58
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:59.931710+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-840fc9dc-c5e2-482a-8815-6bb19566bdff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:50:59.931710+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"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_121_owner_admin_can_send_non_masking_interrupt [0.219809s] ... 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-b47e6180-7145-4317-89f3-1bc5792544ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.112073s] ... 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-64cca882-80d7-49ed-82cc-61f71a45253c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_abort [0.293203s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_driver_name_get_observer [0.190664s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2d498dff-6507-49f9-824a-4fee360cc239
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.169044s] ... 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/ba48976f-8ba1-47c6-a439-cee7a09cb633
Openstack-Request-Id: req-9ff8d91c-ed57-47fe-a96e-3cab73629ec9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ba48976f-8ba1-47c6-a439-cee7a09cb633", "created_at": "2025-06-04T21:51:00.232258+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ba48976f-8ba1-47c6-a439-cee7a09cb633", "rel": "self"}, {"href": "http://localhost/volume/connectors/ba48976f-8ba1-47c6-a439-cee7a09cb633", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
GET /v1/volume/connectors/ba48976f-8ba1-47c6-a439-cee7a09cb633 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-95299366-4706-4df9-97e4-6ad5ed358ebf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ba48976f-8ba1-47c6-a439-cee7a09cb633", "created_at": "2025-06-04T21:51:00.232258+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ba48976f-8ba1-47c6-a439-cee7a09cb633", "rel": "self"}, {"href": "http://localhost/volume/connectors/ba48976f-8ba1-47c6-a439-cee7a09cb633", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_manager_can_send_non_masking_interrupt [0.231462s] ... 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-f61dff25-7de8-45cc-a1d3-b26186afc461
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_admin [0.159158s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3376a077-ed69-4943-88ea-e75a6c963868
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.078232s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/volume/connectors WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_abort_last_service_step [0.326449s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_admin_cannot_send_non_masking_interrupt [0.200292s] ... 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-2f92e5a5-259e-40f6-a7ba-e5a5214e395a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.121589s] ... 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-414a1d9a-5527-42bf-a6df-ea6db7de6391
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_member [0.183125s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b535187e-ca18-4088-88b6-9e3f5a70c84b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.133740s] ... 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-4870f7ac-eadc-47ae-9c14-4e48e52ad940
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'connector_id' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_locked [0.192746s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_lessee_manager_cannot_send_non_masking_interrupt [0.172629s] ... 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-b71c9362-c29a-4d85-9840-834d50e5b4de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_properties_get_observer [0.201554s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8870eb77-ac68-4b04-8b8c-4a7b73d4d222
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.134427s] ... 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-77abcd50-f6ec-4608-882d-943878965947
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'node_uuid' is a required property\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_third_party_admin_cannot_send_non_masking_interrupt [0.203480s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/d13b8387-aa61-436d-9a6e-4845de90100c/management/inject_nmi WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f3c69932-d328-4bc5-8726-cd80d8cb2c4b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d13b8387-aa61-436d-9a6e-4845de90100c could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.105553s] ... 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-42161784-0ad0-48f6-b02c-4ec87fb8246d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'type' is a required property\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_worker_pool_full [0.251226s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.184551s] ... 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-7dfa731f-6377-4271-9a1d-117765a96278
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.106456s] ... 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-b8e64e23-aff1-4d73-bb06-e98ff0232277
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.196417s] ... 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-a2b9de14-b137-4122-b14f-8a5b2be2e03f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:51:01.101164+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': '9eb0cfa0-1703-42b8-8fa0-c8fc252b5eaa', '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-319aea91-3732-45c0-aafc-d394d6877bc7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_126_owner_reader_get_states [0.321150s] ... 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-822b29f7-f0fa-406c-ab07-770dd0e400fe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.369129s] ... 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-3eaac703-dbf1-430f-80c5-52419b6665c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_wrong_state [0.409635s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.212254s] ... 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-40112540-76d2-4414-9a9b-01e9f225d417
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:51:01.355604+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-85a937c6-92c2-4d6c-a361-45a94d1a9431
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:51:01.355604+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.253612s] ... 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-1cb0aa27-52cd-4f76-bddf-487d9be158d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_127_lessee_reader_get_states [0.376896s] ... 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-85eb8258-5877-4ca2-bd20-99f80e3378d1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.078996s] ... 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-fa9a6bc5-c009-42ac-bcac-739f7c522cb5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.204269s] ... 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-4fae7147-0b89-45a5-afe9-154fc82dfea4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:51:01.601141+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.074440s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6fc73e6b-f89a-483b-8425-9d709eee4358
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_provision_action_unhold_service [0.474104s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_128_third_part_admin_cannot_get_states [0.334117s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/5d163aea-6ea0-43b1-b89a-adc3b6d7e0a3/states WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9011d6b8-7c65-4b4e-9d62-0c1b60110850
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 5d163aea-6ea0-43b1-b89a-adc3b6d7e0a3 could not be found.\", \"debuginfo\": null}"}
{0} 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.252125s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3a4e4e91-3820-4501-95f6-ef71e8fbb581
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_129_owner_admin_can_put_power_state_change [0.195528s] ... 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-92b4655b-26ce-4b2d-935e-775775512b8b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service [0.383504s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin [0.256576s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-369cd878-642f-4ee9-80f2-0c45ae10059b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.284557s] ... 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-6caf148c-a9df-4ac9-952e-c5e7edc0fc10
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_owner_manager_can_put_power_state_change [0.189607s] ... 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-c7599a92-c3d2-4cc5-9e2f-5710d3974a86
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_003_nodes_post_member [0.239853s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9404ce6a-7ad1-4d4f-8bc1-c4221504e36f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.254506s] ... 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-694cffb9-a2db-47d3-a221-5b36049ca327
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service_maintenance [0.334893s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_lessee_admin_can_put_power_state_change [0.229703s] ... 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-66ab1e60-e630-44ab-a2c5-4feb5268bb5b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer [0.258892s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bcdb7f52-e3ba-45f6-9ce2-5d2882208e04
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_manager_can_put_power_state_change [0.189777s] ... 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-49cb79d5-ef3b-492a-9130-48e25d3e8ac6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.254972s] ... 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-9e25ddf8-3989-4fd5-b5eb-78666bbbf277
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.335846s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin [0.181302s] ... 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-917319fa-cfe6-4292-b75e-5151ad72cb55
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_133_owner_member_can_put_power_state_change [0.183748s] ... 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-31a1dc3a-eb9c-48a5-b51a-dbe092362ef3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.250225s] ... 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-d14e8a25-b5b6-4d7d-aa20-eb5e1416c544
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member [0.139009s] ... 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-70d4d582-e503-46ac-a395-5f7e8ea8d65e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer [0.089561s] ... 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-6504264c-a82e-42d5-a6b6-2e8062ae7c13
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_134_lessee_member_can_put_power_state_change [0.264854s] ... 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-a3ccbced-f770-4492-b5ee-64e041eac138
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin [0.090932s] ... 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-d0595874-52db-4f8b-a1f5-07b6463aa0aa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.345246s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.250455s] ... 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-06326e17-a05d-478b-ad2b-4f449cf2dde6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin [0.115086s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fe6a0be7-7631-448e-9439-1fe7249ec21c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_reader_cannot_put_power_state_change [0.248183s] ... 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-8b51aebb-c0e5-497c-9099-251e16ed3a38
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin [0.099789s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-45047981-8706-45eb-a67e-872dc140f0b0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin [0.075399s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-15cf3784-1924-4f6b-85c7-f0181198603b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.285822s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.276065s] ... 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-be09b04c-927e-450b-8e61-1da2624a97f7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member [0.104232s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3205785a-930c-438c-a877-97d40e6b9684
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_reader_cannot_put_power_state_change [0.243710s] ... 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-4028bb67-95ed-4abc-a862-d30f6b564559
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.218783s] ... 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-b8575155-3c47-4db8-9ef8-ac4ff8376e2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer [0.148206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-53dc9ec6-0e09-47b3-bc32-4b852744360c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_137_third_party_admin_cannot_put_power_state_change [0.275846s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/96c75348-fda7-421d-9d43-dafd51598233/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e87a2d81-274b-495c-ad0c-1256fcf48fda
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 96c75348-fda7-421d-9d43-dafd51598233 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin [0.199811s] ... 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-48a60f53-c7d9-4ff6-b833-0ffa6b0d9b26
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.343273s] ... 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-5ffb3dd3-ce25-43be-b807-4475fd3b7ff4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member [0.173029s] ... 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-90c90111-4306-4095-9ebc-2a6f79b5a7da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_admin_can_put_boot_mode_state_change [0.291963s] ... 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-e8c755ff-8764-4df6-ac0c-64546cee8eeb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer [0.168627s] ... 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-3303c210-34a2-4199-bea0-f2b718d68684
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.349611s] ... 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-f65f31dd-4d5e-46d1-bd77-a07c5c2021ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.190389s] ... 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-4ff2fa98-51a2-41c8-9494-90d724403aa5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_139_owner_manager_can_put_boot_mode_state_change [0.299071s] ... 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-46c5eea8-6c94-4fc4-bb1d-ebb17b93d591
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member [0.179542s] ... 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-9e9cc523-a768-4c94-8cb1-a7399a47da46
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_lessee_admin_can_put_boot_mode_state_change [0.278769s] ... 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-ff7304d0-e998-440f-9fe7-8f18b3380189
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.187109s] ... 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-ad121915-52e1-4388-a3f5-0d56c7f3c4d1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.089982s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0443ca02-be9c-46c0-a2c9-8ee1e02fefde
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member [0.141054s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-bb0a025b-7576-4cba-b7c4-37b18d92e374
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_manager_can_put_boot_mode_state_change [0.425919s] ... 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-34fa7d5b-ab98-4640-bab1-180b92a082a8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.181318s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-dac0775a-780a-4df3-ba55-3f0a33354219
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_admin [0.345898s] ... 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-1851052f-7f26-4b25-9bad-b7f145b0b91f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"bios": [{"created_at": "2025-06-04T21:51:05.219310+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.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin [0.100156s] ... 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-54ce5e9d-c758-48fc-8d57-129667a5fe3b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_member [0.280361s] ... 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-e4743310-f150-48de-89a9-4b7268cee25e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_get_observer [0.264102s] ... 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-98a1740c-88c4-43cd-8974-4a2bab10d112
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"bios": [{"created_at": "2025-06-04T21:51:05.827666+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.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member [0.547966s] ... 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-ab56f413-dd65-4923-b6d0-a898eabbf76f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.194191s] ... 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-d9093c47-b46b-4996-9c0e-1d9490563319
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"FAKE_SETTING": {"created_at": "2025-06-04T21:51:06.073040+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer [0.172032s] ... 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-d377fcfb-729e-4dac-808d-69e620fa5270
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin [0.110618s] ... 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-91114a18-5400-49e7-a8ed-05d282034b1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.184124s] ... 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-b1f2d2d1-d8f3-4bc5-8a4f-090ae605acdb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member [0.114740s] ... 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-3db40efe-7518-4a1f-9ea6-25dbe8df3d2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer [0.101495s] ... 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-a04c7d3f-fc60-44a8-92a7-b08da8164687
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.238480s] ... 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-b2783a1c-ac98-4846-a619-3433daef738c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"FAKE_SETTING": {"created_at": "2025-06-04T21:51:06.460575+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.112629s] ... 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-25c23632-033c-4bf3-b0da-bf16db5853ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_142_owner_member_can_put_boot_mode_state_change [1.367758s] ... 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-4e6cc687-516f-4ca4-9fe8-6702c86bec2f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member [0.178623s] ... 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-dcaff84d-3dcc-4027-ae9e-7241b37661e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.129496s] ... 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-f31b4527-cfdf-47fa-a0d1-80733eb06edb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_lessee_member_can_put_boot_mode_state_change [0.391007s] ... 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-6d165631-1eb9-47a1-b9b0-58391fbd2bd4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.128592s] ... 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-0ccc3d67-05e2-45de-ad20-f9435c32e46b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.133142s] ... 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-9df9dd6e-9ae0-4429-a6d1-d31ba3c64b3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.142409s] ... 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-e932f249-be34-4ddb-a7ce-8a3484192aed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_admin [0.894961s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-43f4b3c4-c462-4e01-811a-18fde6b3cdb4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_reader_cannot_put_boot_mode_state_change [0.417874s] ... 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-6e07eeb1-97a0-4997-8c8c-75b0014870d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [4.065139s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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()
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.143620s] ... ok
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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.431704s] ... 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-ffa595fa-5997-44ff-a78b-2a741bc0770c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_member [0.432804s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-71a94cdc-f054-4238-97df-0e9b1e230ea1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_145_lessee_reader_cannot_put_boot_mode_state_change [0.420539s] ... 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-db33d858-9593-475f-af62-e4bb8d8b8a94
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.377343s] ... 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-b06fc268-2fbd-4e98-8f4f-c87d55e0391c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_get_observer [0.366978s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6ddb59dd-e9c4-4d72-9206-2fd864ddb251
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_third_party_admin_cannot_put_boot_mode_state_change [0.387380s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/1c474a05-e9ff-43cf-8499-4adb9cf1cd20/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c523b780-714a-4285-9965-71b6df129a7f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1c474a05-e9ff-43cf-8499-4adb9cf1cd20 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.214023s] ... 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-050e9dbd-b969-49d0-93c5-c4f4b99f6fc4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.091423s] ... 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-4f5595ec-88c9-4147-a458-b476d07b2536
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.085695s] ... 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-83c47229-bb71-4f88-8a8a-ff52a7b30208
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_admin [0.418261s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e685709b-e884-4ec7-aea1-aab661e15605
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:51:08.467752+00:00", "updated_at": "2025-06-04T21:51:08.468416+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_admin_can_put_secure_boot_state_change [0.349505s] ... 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-ea99dd76-35e9-41d7-ad60-e07a042f3a5a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.114933s] ... 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-8b1a46fa-a0c5-453e-9d96-3543d664c2ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.098270s] ... 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-be6a3a02-2b8c-48fc-a745-1e421255f9e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_148_owner_manager_can_put_secure_boot_state_change [0.181619s] ... 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-fd06eb60-d69c-4a4c-b30f-b89630ba1b19
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_member [0.279963s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-95faba2b-0b5f-4edc-8981-cfa74005046b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.163111s] ... 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-b4012573-5100-4537-9581-72f0e41eff9c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_lessee_admin_can_put_secure_boot_state_change [0.206365s] ... 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-5dabc98e-6fef-4130-9092-58ceaf4a58d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.118888s] ... 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-c509b99d-1ff7-497c-a480-d593334a3fee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [1.410071s] ... ok
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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_246_conductors_hostname_get_observer [0.234678s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-47f95682-b6ca-4a98-887d-1f68efdbf0a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:51:09.105893+00:00", "updated_at": "2025-06-04T21:51:09.116729+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin [0.132215s] ... 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-c2bd56cc-3b75-4904-a048-9aad5293ca31
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_150_lessee_manager_can_put_secure_boot_state_change [0.255134s] ... 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-a65a1781-c477-41a7-a376-f49df21201de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member [0.163760s] ... 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-1c21cad9-f86a-41cd-8c5f-a71ca3bc910f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_admin [0.315580s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-d03c11f4-1210-4723-a9de-2d4213e1d605
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer [0.125179s] ... 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-08c352e8-c905-4ae9-bbe4-e7cf01423277
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.366419s] ... ok
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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_owner_member_can_put_secure_boot_state_change [0.201770s] ... 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-7a91802f-7698-46a5-9bcc-c696e50dfb77
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin [0.105029s] ... 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-9cd303b1-8891-40ba-8faa-b71349827eb5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member [0.080636s] ... 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-f3f16d63-2458-4f91-8070-26cd60c93f40
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_152_lessee_member_can_put_secure_boot_state_change [0.221338s] ... 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-26befde2-ad2c-4327-a49b-25c762092fe9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.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.
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer [0.106885s] ... 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-879d12ea-0802-4d4a-8f19-2345666f942a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path [0.323748s] ... ok
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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.106077s] ... 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-7d87f31c-6337-4eb4-9a3c-4e8607781d37
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_153_owner_reader_cannot_put_secure_boot_state_change [0.232274s] ... 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-22c5e45c-0fea-4d88-b395-509997517f9a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.134838s] ... 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-4aa5ed17-cbb5-41d9-b653-4981ef6eb09f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_remove_vif_failed [0.253930s] ... ok
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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.102364s] ... 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-93f56bf5-7d34-42df-8a23-bb203d3e5391
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_post_observer [0.405842s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d7ad4718-3dc1-45f9-8567-5d21c2db4177
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.090237s] ... 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-960974e1-42cb-4e2d-9183-f544df737b73
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.156950s] ... ok
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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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)
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_154_lessee_reader_cannot_put_secure_boot_state_change [0.287757s] ... 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-d4c7c5ad-9b77-4822-a768-62a37027b5e3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.135369s] ... 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-840b2868-63ed-4d24-ae62-d8230ec47d64
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.153188s] ... ok
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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.125783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_admin [0.353575s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-62b6539a-bec9-4553-9dff-707bf56f1a76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "a9a3fe2e-22a5-4b2b-a20b-7927c1ad68ae", "created_at": "2025-06-04T21:51:10.368256+00:00", "updated_at": "2025-06-04T21:51:10.399344+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/a9a3fe2e-22a5-4b2b-a20b-7927c1ad68ae", "rel": "self"}, {"href": "http://localhost/allocations/a9a3fe2e-22a5-4b2b-a20b-7927c1ad68ae", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.170596s] ... 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-6b9f42b0-91d2-48f8-9340-56a772a73ae7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_155_third_party_admin_cannot_put_secure_boot_state_change [0.294511s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/b52fc9a2-efe3-41a6-bd95-57057b023f6d/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6140187e-23e2-4e40-ac7f-3266719ad3bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node b52fc9a2-efe3-41a6-bd95-57057b023f6d could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin [0.130378s] ... 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-9fb5b1a0-1d4c-4c5d-812d-0edb3d4e6b40
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.169725s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member [0.097337s] ... 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-bf199f98-c24c-4776-95b8-4205b63a831f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.137584s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_member [0.326417s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a2628909-218c-434e-8106-43bfa2cbffcd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_owner_admin_can_change_provision_state [0.369296s] ... 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-cdd20b48-9a56-40e4-ad6e-5a8c9aa6d8df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.182095s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_automated_clean [0.140273s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer [0.420697s] ... 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-b9639873-41dd-4e8f-955d-34e73bdf7a29
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_get_observer [0.349791s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b369e41f-f46b-4f60-a870-42e6a029e5dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "aecbc414-e92a-43ca-95ce-aa943ef41dff", "created_at": "2025-06-04T21:51:11.004407+00:00", "updated_at": "2025-06-04T21:51:11.035052+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/aecbc414-e92a-43ca-95ce-aa943ef41dff", "rel": "self"}, {"href": "http://localhost/allocations/aecbc414-e92a-43ca-95ce-aa943ef41dff", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin [0.097238s] ... 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-9e5f6da7-eac7-4c69-8350-d3af6e331539
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_157_owner_manager_can_change_provision_state [0.396233s] ... 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-a0c6cbda-e747-4484-b7dc-dd43878c40f0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.212820s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member [0.086445s] ... 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-ee3e00fa-70cc-4425-84ad-686fb0a095bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer [0.098827s] ... 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-10445571-a87c-447d-808e-fef855710630
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_automated_clean [0.208442s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin [0.131759s] ... 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-a350ef22-d983-43cc-992c-c42b6daa2ad8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.431663s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/66805943-ccbc-425b-b97b-f2986c47aee9 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f119873e-bb2f-4b11-a608-2451627d3b94
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "66805943-ccbc-425b-b97b-f2986c47aee9", "created_at": "2025-06-04T21:51:11.385912+00:00", "updated_at": "2025-06-04T21:51:11.390380+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/66805943-ccbc-425b-b97b-f2986c47aee9", "rel": "self"}, {"href": "http://localhost/allocations/66805943-ccbc-425b-b97b-f2986c47aee9", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_158_owner_member_can_change_provision_state [0.326795s] ... 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-079e4a7c-480e-43a0-adf3-c9d232136168
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member [0.109492s] ... 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-c8985049-0d2f-4e22-ac0f-e4c03f233704
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_manual_clean [0.221452s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_get_observer [0.143627s] ... 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-aaed13f6-9c89-4352-9542-66df3b9bd4db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_from_deployhold [0.172918s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_admin [0.126653s] ... 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-387f5d4f-c2f4-4900-b8ff-891afade17ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_member [0.365554s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/f23c2494-3721-40ad-9489-13e89b412efe WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9236a110-a0ec-4747-8191-9227f9426e88
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation f23c2494-3721-40ad-9489-13e89b412efe could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_lessee_admin_can_change_provision_state [0.304423s] ... 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-0800ed71-82d3-4325-8adf-6716d332a286
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_member [0.148070s] ... 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-1abe3838-dfa6-452c-ad81-701491cc91ce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.179917s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_067_nodes_states_console_put_observer [0.134147s] ... 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-51cd7df0-1374-4624-959a-a0d09e939532
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.283569s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/f631b4bc-e10d-4d99-8dc4-9b34f1d55dfd WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-44c7eca8-3571-42f5-bcfe-246d011c7e14
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f631b4bc-e10d-4d99-8dc4-9b34f1d55dfd", "created_at": "2025-06-04T21:51:12.155450+00:00", "updated_at": "2025-06-04T21:51:12.166550+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/f631b4bc-e10d-4d99-8dc4-9b34f1d55dfd", "rel": "self"}, {"href": "http://localhost/allocations/f631b4bc-e10d-4d99-8dc4-9b34f1d55dfd", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.147925s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_160_lessee_manager_can_change_provision_state [0.308101s] ... 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-e1bf8b1f-b0ae-49d2-9071-600470884a57
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.165025s] ... 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-4fa62260-ea47-4642-af5b-c26af1b6b38c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.168391s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.136640s] ... 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-44f315c7-fcd6-4cf4-96e1-754973a51f15
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.142053s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_161_lessee_member_cannot_change_provision_state [0.286076s] ... 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-b267b2ed-09ee-4958-8b98-118bcc9da648
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.362605s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/c822f583-9a9b-4b4e-8c57-1c25b879164d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a2e749ca-b222-4e0f-971d-8e45d004983d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c822f583-9a9b-4b4e-8c57-1c25b879164d", "created_at": "2025-06-04T21:51:12.444767+00:00", "updated_at": "2025-06-04T21:51:12.654524+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/c822f583-9a9b-4b4e-8c57-1c25b879164d", "rel": "self"}, {"href": "http://localhost/allocations/c822f583-9a9b-4b4e-8c57-1c25b879164d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.100749s] ... 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-b131c654-cd72-4f97-9576-5b8fb9da0117
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.128831s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.112543s] ... 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-2dd7327d-729c-4735-a84e-e86c2aa1308b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state [0.063220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IndicatorsTestCase.test_get_supported_indicators [0.048524s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_third_party_admin_cannot_change_provision_state [0.240425s] ... 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-d5450dee-c81a-4ec1-a523-cb38db11e613
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state [0.079853s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.354849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/73a13cba-086b-4c20-badd-55eb6503085a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4e07033e-4966-4d4a-832f-7ef007cdca94
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 73a13cba-086b-4c20-badd-55eb6503085a could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.219456s] ... 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-50746da2-cd5b-484d-91d1-356148ce7503
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_163_service_can_change_provision_state_for_own_nodes [0.169768s] ... 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-30a9c813-3ca8-413b-a11e-23f010bd3219
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.271879s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_164_service_cannot_change_provision_state [0.180120s] ... 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-d935a7d4-0031-46b8-acd6-ee6dca31968e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.235625s] ... 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-d8eb827d-1955-45ce-8b37-9203b544f477
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_165_owner_member_can_set_provision_state_clean [0.112369s] ... 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-30eecaf9-0140-48a2-be77-1c92603e4fbd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.377570s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/86b3576c-7a8e-473f-958c-562621bd9fdd WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2d28819c-a01b-455f-ada7-dd736eaecbb9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.186352s] ... 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-d4c06cc5-3084-485c-bdc3-dc2beb181778
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_166_owner_reader_cannot_set_provision_state_clean [0.164014s] ... 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-7db8e425-c060-4ba9-bc9a-3fd0b8c67dc8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.184019s] ... 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-8899c269-f36a-4837-9349-36ce146b0d58
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.285206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/091cde62-2049-4f0a-8f0b-35bed66f8f6b GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-5c6d799e-1201-4a10-924a-c322c03ab799
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_167_lessee_admin_can_set_provision_state_clean [0.189033s] ... 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-7bd5b290-7ad5-4c8a-8bc8-df3bea38879c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_168_lessee_member_cannot_set_provision_state_clean [0.128248s] ... 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-9eeefc4c-f237-4634-9291-9a3c5fac2ecb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.270732s] ... 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-7e7c574e-dac6-4a8d-8491-1bbc94636712
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_169_owner_member_can_set_provision_state_service [0.122680s] ... 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-27567756-3682-4561-8b87-4e6de3da6e1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.299118s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/dbe86027-2f3c-4ed0-a6d0-a8b05dc0498e GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-108c4dd4-a851-46e0-a175-aa272ecbfbcb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation dbe86027-2f3c-4ed0-a6d0-a8b05dc0498e could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_170_owner_reader_cannot_set_provision_state_service [0.088764s] ... 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-62e4c7d0-782d-4275-b861-9573d80cc5fd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_171_lessee_admin_can_set_provision_state_service [0.107469s] ... 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-459e63ed-ebef-48b9-8689-ca2b037c9402
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.347205s] ... 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-dc2d4b31-a182-4c30-bce5-0734c68ab612
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.320646s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/b6f65646-a36a-439b-91c1-fd53fcae93fb GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-61e1ff67-6e01-45b4-a16d-240a96ca0cf7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [1.117676s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_172_lessee_member_cannot_set_provision_state_service [0.277152s] ... 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-4dbeb06f-078b-4025-a2a2-3898fdffa7fb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.233289s] ... 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-20a45668-3d23-4901-b1d9-5099c082c3b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_admin [0.307980s] ... 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-ad4a6298-3f76-4fb4-b5d6-c3dc34c97083
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1861b9fa-eab5-4521-b2f3-7c1133768b08", "created_at": "2025-06-04T21:51:14.412623+00:00", "updated_at": "2025-06-04T21:51:14.439200+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/1861b9fa-eab5-4521-b2f3-7c1133768b08", "rel": "self"}, {"href": "http://localhost/allocations/1861b9fa-eab5-4521-b2f3-7c1133768b08", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.207839s] ... 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-a6bf959f-1f4a-473a-a969-24ec86a19244
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_owner_admin_can_set_raid_config [0.325794s] ... 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-190de69a-8b9c-48ed-a2dd-4e134344f4da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.449062s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_member [0.345646s] ... 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-c2b7c849-67dc-43fc-81ed-1ad381338551
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.244211s] ... 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-341d98de-d146-4f34-96ba-f5d36aaa6eeb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_owner_manager_can_set_raid_config [0.297855s] ... 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-c4a34308-5410-4c41-aa9a-417f6a994785
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.346045s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_get_observer [0.227547s] ... 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-1cf9d2a0-6936-43c5-951b-66fbb083bd87
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1d34de88-ea09-4ea3-9d0b-cdcdb18ea1a4", "created_at": "2025-06-04T21:51:15.079756+00:00", "updated_at": "2025-06-04T21:51:15.094859+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/1d34de88-ea09-4ea3-9d0b-cdcdb18ea1a4", "rel": "self"}, {"href": "http://localhost/allocations/1d34de88-ea09-4ea3-9d0b-cdcdb18ea1a4", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.218915s] ... 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-0d0158f6-f364-4b8d-8a36-219f686ab2f9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_175_lessee_admin_cannot_set_raid_config [0.305737s] ... 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-352c8a07-0563-473f-8229-23dee75373a5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_admin [0.226822s] ... 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-aa495b9b-62d0-44b3-aba0-716a6dbe9812
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.232715s] ... 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-b35f0a05-930e-4fce-9af7-51d9eadd492e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.356535s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_member [0.207541s] ... 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-841ec299-0972-4e49-b463-8a38b16cc24e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_admin [0.191629s] ... 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-2bb6cf89-d18b-40fa-967f-e36e7bbdc55d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_176_lessee_manager_cannot_set_raid_config [0.365440s] ... 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-157145d4-875d-4bef-8d01-0b662afda557
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_member [0.186641s] ... 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-025e5fc6-664d-4f61-a4be-90cd82c55dbc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_nodes_allocation_delete_observer [0.253526s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b413d110-0eac-44ed-af67-be7f5b4af903
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_admin [0.123532s] ... 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/38a79b53-f52a-47cd-9f12-2a9874e32761
Openstack-Request-Id: req-b3e6d9f6-c76c-4e03-8eb6-d99c6652a559
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "38a79b53-f52a-47cd-9f12-2a9874e32761", "created_at": "2025-06-04T21:51:16.020535+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/38a79b53-f52a-47cd-9f12-2a9874e32761", "rel": "self"}, {"href": "http://localhost/deploy_templates/38a79b53-f52a-47cd-9f12-2a9874e32761", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]}
{1} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.511639s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_085_nodes_traits_get_observer [0.266016s] ... 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-4e2a2839-3687-44c3-8f35-ad1ad25f5570
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_member [0.277555s] ... 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-57a24479-5130-4457-8de7-7a11266b0c76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.273442s] ... ok
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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_post_observer [0.141241s] ... 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-69b13dbd-3e65-4772-8718-58d87efda582
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_admin [0.362557s] ... 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-2748795c-2aeb-4e9a-bb56-c1a8220667ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.176633s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.191831s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_177_owner_member_can_set_raid_config [1.119331s] ... 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-6cc9216a-66fb-49de-baed-6ea480f68c78
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.182189s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_member [0.427056s] ... 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-3f9bea6b-4701-4e06-82cb-3ce56c7ce8aa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_admin [0.533182s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5e588b72-3fdf-4920-b3ea-9bb9a3cfad87
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "31ff7fe6-3154-4d89-af0c-7f94d331bbe4", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/31ff7fe6-3154-4d89-af0c-7f94d331bbe4", "rel": "self"}, {"href": "http://localhost/deploy_templates/31ff7fe6-3154-4d89-af0c-7f94d331bbe4", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_member [0.165452s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6e16a4f3-b40b-4fe8-8394-b33c2d62df91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_178_service_owner_can_set_raid_config [0.287198s] ... 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-b99bc454-6f52-466a-af78-bab21830a407
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.241330s] ... ok
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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_get_observer [0.121912s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-43f9bbc0-5b1f-4f11-bfb3-2ee9054a4c33
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "7f03310c-9207-48f0-bcab-d3d144dbb828", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/7f03310c-9207-48f0-bcab-d3d144dbb828", "rel": "self"}, {"href": "http://localhost/deploy_templates/7f03310c-9207-48f0-bcab-d3d144dbb828", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_put_observer [0.332187s] ... 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-3d281be4-3ef1-46dd-ad7a-1dcbde9d4fbe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.106111s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/f4b33171-32c5-440f-b8e6-ea1c092a41ed WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b17ed1ef-7602-4300-ad90-3d0a05a62906
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f4b33171-32c5-440f-b8e6-ea1c092a41ed", "created_at": "2025-06-04T21:51:17.334760+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f4b33171-32c5-440f-b8e6-ea1c092a41ed", "rel": "self"}, {"href": "http://localhost/deploy_templates/f4b33171-32c5-440f-b8e6-ea1c092a41ed", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_admin [0.200462s] ... 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-9c1549bc-f1d1-4773-9d02-0e40b89ac7a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [0.349820s] ... ok
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.api.test_acl.TestRBACProjectScoped.test_project_scoped_179_lessee_member_cannot_set_raid_config [0.384879s] ... 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-df959228-716b-4cf3-a284-dedd3c8cffe5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.225307s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/31cf192b-921f-4930-b296-cef1a735df22 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b70850b9-2206-4eba-a34c-7528f94ee445
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_member [0.203353s] ... 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-e15d4b7e-e448-429e-8ec7-da925b2c7e25
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all [0.259087s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.209914s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/10643fcd-4c5d-482e-8136-4a4a266b8ff6 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cf26ecd1-c342-40f9-9fed-3220c640c1f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "10643fcd-4c5d-482e-8136-4a4a266b8ff6", "created_at": "2025-06-04T21:51:17.727262+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/10643fcd-4c5d-482e-8136-4a4a266b8ff6", "rel": "self"}, {"href": "http://localhost/deploy_templates/10643fcd-4c5d-482e-8136-4a4a266b8ff6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_180_third_party_admin_cannot_set_raid_config [0.374631s] ... 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-5e7f718e-daa1-4845-b1f1-9f24882a007d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_delete_observer [0.217467s] ... 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-7514c87d-3b9d-492e-b25d-cbb3079e3a2d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.184385s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/d8cd9356-e9a0-4105-b5be-12978ffbaf93 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-758721a2-acbb-48e9-ab8a-7fdf54a24329
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d8cd9356-e9a0-4105-b5be-12978ffbaf93", "created_at": "2025-06-04T21:51:17.864948+00:00", "updated_at": "2025-06-04T21:51:17.998440+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d8cd9356-e9a0-4105-b5be-12978ffbaf93", "rel": "self"}, {"href": "http://localhost/deploy_templates/d8cd9356-e9a0-4105-b5be-12978ffbaf93", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.243141s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.135716s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/a94305b9-f75c-4f3c-a5c7-12004088dad4 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cdc7bf26-ad01-42d6-a8fc-3252ba821f06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.110643s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/c0746d34-0531-48ec-b2f2-783b7eeb2a58 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7139cd53-4867-4060-b8c4-8d1ee781bc08
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_service_cannot_set_raid_config [0.388109s] ... 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-04b2df6a-ff10-4ca8-83e7-ae4df8c3a49a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.250481s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.120985s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/260be307-24d8-4403-afe6-3ec85f9f4f96 GOT Response: 204 No Content
Openstack-Request-Id: req-20cc0f51-4e61-403b-9387-1e65af2cd242
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.139276s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/7480638f-6f4a-4f32-9a33-3ca6621126fb GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-af9ea576-7940-4543-abea-869cf03dacc0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.259298s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_182_owner_admin_can_get_console [0.375310s] ... 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-5ef20963-8bf1-4fd3-874b-8e984f2012bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.784665s] ... 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-d9607ab5-3701-476a-9c8e-fb23421de874
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.244499s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/e821481f-02bc-45b3-980e-be6987687637 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f0da3e47-551e-4f72-837b-8a1057a3bdca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.198180s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_member [0.095113s] ... 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-210d25d2-fb56-4997-ac34-773421c096e6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.093583s] ... 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-d050baa7-5473-4bd7-aeb5-2f908ad47a6e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_183_owner_manager_can_get_console [0.253294s] ... 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-6ed22328-dd9e-4b6a-ba5a-7f86a1997aa5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_admin [0.202244s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/chassis/6c74302f-282a-4218-b129-fa089020a44f
Openstack-Request-Id: req-6be7196d-bbe6-473b-88ee-e921532e4c1a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6c74302f-282a-4218-b129-fa089020a44f", "created_at": "2025-06-04T21:51:18.951785+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/6c74302f-282a-4218-b129-fa089020a44f", "rel": "self"}, {"href": "http://localhost/chassis/6c74302f-282a-4218-b129-fa089020a44f", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/6c74302f-282a-4218-b129-fa089020a44f/nodes", "rel": "self"}, {"href": "http://localhost/chassis/6c74302f-282a-4218-b129-fa089020a44f/nodes", "rel": "bookmark"}]]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.120445s] ... 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-ce020439-427f-47b8-bd50-ee7482da1149
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties [0.246427s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.087614s] ... 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-23c9b8af-1b1f-44e0-b255-74b0465ed871
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_member [0.186412s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-efd7e758-8a9c-44e8-b324-6370afce5cfa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.106369s] ... 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-f7dcaab8-2d32-4935-b136-effac6d61bb1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_184_owner_service_can_get_console [0.324918s] ... 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-12f0190b-5405-4262-8f02-935c77238c4a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config [0.254017s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_admin [0.094817s] ... 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-f0f35f82-0eed-4a3f-8c1b-f606ca18b8be
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_post_observer [0.213817s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d5fb0bd8-331e-49cb-8cf3-383019a1d272
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_member [0.106255s] ... 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-f0d255f2-9a79-4254-84ca-47dbdb1f459d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_admin [0.097341s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-085b6e0d-bf90-4e96-a418-14f5a467d34a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_empty [0.213702s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_get_observer [0.126600s] ... 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-a7c48d02-8672-43be-818c-8ced89bdf924
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_console [0.274744s] ... 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-0ffe6190-60d5-462d-b16e-8704b1922955
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_member [0.149231s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3e9413c0-666f-45bc-ad90-2c9c908b2554
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_admin [0.127988s] ... 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-ec055e42-a4e9-4367-9e9e-fd6075a15503
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_get_observer [0.112740s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d1fce824-298b-43c2-b7cf-1a44611c7265
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_member [0.092498s] ... 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-912866d8-e7a7-4010-a020-c499eed88f4d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_admin [0.104513s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-099de11e-defe-4cec-9e48-ab2619f56196
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:51:19.803936+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{1} ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config_invalid_parameter_value [0.331300s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_member [0.119637s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-436cadbe-c128-472d-8673-6cc8ced4a638
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_get_console [0.426532s] ... 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-662bca21-bb61-4045-a7db-15d5326e2155
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action [0.121167s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_post_observer [0.296764s] ... 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-69bd0b93-364f-4c0d-b724-c52714356221
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_detail_get_observer [0.121502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-701d9c51-7ba4-4602-8e09-04406d9a1f1f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:51:20.039148+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]}
{1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.112383s] ... ok
{1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object [0.105093s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.171283s] ... 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-83f14604-94ca-451d-973a-6e213dd68211
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.194707s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e93eabf0-a367-4fa6-9ab5-b75ecee35de2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:51:20.213836+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.133818s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_187_owner_member_can_get_console [0.441964s] ... 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-48f4fe2e-aae6-482f-bbf3-13ae44ca5b1c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.186164s] ... 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-8445ecf3-253a-44b1-90d6-51c9f1dcaade
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_member [0.191089s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6d68f0ed-d78f-4960-a87d-2b74f16c081e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.111319s] ... ok
{1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.084203s] ... ok
{1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object [0.084428s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.219425s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-35a46f2b-2565-4498-b7f3-4533a22b2342
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:51:20.603547+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.TestRBACScoped.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.252370s] ... 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-05a1260f-12dc-4d47-a91f-aa03089af6fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.097655s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_member_cannot_get_console [0.354307s] ... 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-0631c33d-77e1-40b2-9bb3-4c5507328b76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.133601s] ... 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-19f0e639-246f-4b21-9d90-7dafb59dc484
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:51:20.776258+00:00", "updated_at": "2025-06-04T21:51:20.823453+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.151841s] ... 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-5029fd4e-7e66-46d5-9739-4d90dcc4e220
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.234957s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.322872s] ... 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-cd199f90-4b59-42ea-b1b6-ec9bf5379991
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.112999s] ... 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-02918dd3-e912-417c-8949-06be8ec8db68
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_reader_cannot_get_console [0.331934s] ... 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-02887fc0-e7f0-448e-8ab8-bb6ea925002b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.115912s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content
Openstack-Request-Id: req-31dc8eb4-53fe-43db-af9d-23433f01a429
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.238188s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.113849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3470b051-629e-4982-900b-343293bc94cb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_member [0.362488s] ... 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-b85e9cf6-98a4-4c88-b802-89a00533ac6f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_lessee_reader_cannot_get_console [0.275738s] ... 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-ebc4c73f-d8cc-428b-82b4-950915a75591
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.125306s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6fbe736b-9b48-4885-a76d-6710d0737392
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.235681s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_admin [0.149407s] ... 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-97239528-c5b7-48ca-b8d6-bb4d1cd659ec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "8d7737e3-1b25-4ad1-8b1a-76121e4b1beb", "created_at": "2025-06-04T21:51:21.553018+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8d7737e3-1b25-4ad1-8b1a-76121e4b1beb", "rel": "self"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.316721s] ... 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-5d0d5afc-f9c8-4e19-9234-76dfdaacd0fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.226874s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_191_third_party_admin_cannot_get_console [0.325539s] ... 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-2ae4b71d-cb44-421e-a735-65f6524cc98c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_member [0.185905s] ... 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-5b8de731-be9f-49c5-8935-1327bf9294c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_observer [0.117641s] ... 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-29c52c9f-5fa2-46e8-a2e5-333aa813d632
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "f5e8f794-2d08-487e-ad1a-2c0e746510fc", "created_at": "2025-06-04T21:51:21.874713+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f5e8f794-2d08-487e-ad1a-2c0e746510fc", "rel": "self"}]}]}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.199817s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_192_owner_admin_can_set_console [0.254767s] ... 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-09c52760-609b-4b74-b3ee-60e5d5d4ce6e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_admin [0.124633s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c6a62dfa-6898-4b64-bdb9-b8431b52011b WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-993ad9a0-f2de-423a-8504-b406731f3926
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c6a62dfa-6898-4b64-bdb9-b8431b52011b", "created_at": "2025-06-04T21:51:21.996528+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/c6a62dfa-6898-4b64-bdb9-b8431b52011b", "rel": "self"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_owner_manager_can_set_console [0.178543s] ... 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-3e9c09ea-24c7-4309-b5a6-1a8bc4b70a57
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.300358s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_111_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_lessee_admin_cannot_set_console [0.227152s] ... 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-dfdb9a3d-c780-4a22-a4e0-1b1931b1bdcb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.211193s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_112_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_member [0.662736s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/71a15ea7-b853-48e6-9c1e-d96302fdb528 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d0120a7e-d9fa-47aa-ba4a-c961ac25de8f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.251299s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_manager_cannot_set_console [0.314058s] ... 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-bca35901-3269-4a20-95cb-4328d438fac8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_306_node_history_get_entry_observer [0.079016s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6a17998b-019f-49b2-a228-cf9b09cd2719 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4a63ff52-b946-4595-a007-eb2a4695bf63
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6a17998b-019f-49b2-a228-cf9b09cd2719", "created_at": "2025-06-04T21:51:22.763015+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/6a17998b-019f-49b2-a228-cf9b09cd2719", "rel": "self"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_113_portgroups_get_admin [0.354515s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6d77a71a-cf54-4b0a-9b8c-4b72b19100f6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_owner_member_can_set_console [0.239911s] ... 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-2b58eb57-172c-4ff6-940c-465c91ad5d20
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.289417s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin [0.233325s] ... 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-119d1e65-4192-4e02-90d8-e9c6a995ed94
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_lessee_member_cannot_set_console [0.197464s] ... 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-4fd6e356-906f-47c3-a66a-68503040daf0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_114_portgroups_get_member [0.290990s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-87eac83c-95ea-41f2-bd6f-3ca87b3b0e30
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.309198s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member [0.317121s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bcb90888-fc88-4937-a8f4-5db1a4a17df6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_get_observer [0.228499s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4cacdd21-865c-418c-8663-dac7cb31915f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_service_can_set_console [0.314485s] ... 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-0df2bb48-b687-4511-a668-16df80294217
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader [0.162228s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-575b0418-83b2-4918-8219-eaed9f0f26a9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.284994s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_199_service_cannot_set_console [0.217651s] ... 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-9f0052e8-40e9-4c56-be9d-4e0350707426
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_admin [0.275429s] ... 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-7efc6039-a440-40d7-a8d5-6ed91ccf63bd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_post_service [0.225260s] ... 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-5e203059-aa84-47b4-b156-75205ad68a9d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_200_owner_admin_cannot_get_vendor_passthru_methods [0.199939s] ... 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-268e03f1-037a-4e06-ae65-69c1be1f2b96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.294038s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_admin [0.140316s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-097403a9-71ea-440f-845c-5a11476a9de0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:23.879807+00:00", "updated_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.TestRBACScoped.test_rbac_legacy_117_portgroups_post_member [0.309647s] ... 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-7da127d3-8afb-4119-918f-a4ad057e8d38
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_member [0.131257s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4e3baa35-41ad-4189-b145-97259a05b7c3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:24.013147+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_201_owner_manager_cannot_get_vendor_passthru_methods [0.247929s] ... 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-e7d156e5-2652-4697-b44e-11b183207fad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_reader [0.180193s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2c732742-324b-4735-8886-fe7c10fc8b4b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:24.129975+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.374143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_owner_service_cannot_get_vendor_passthru_methods [0.201978s] ... 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-4f7a28f3-6132-43bf-9452-1a0bc54a4234
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_node_other_admin ... SKIPPED: Not implemented yet
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_post_observer [0.312010s] ... 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-188594db-42ca-4331-8ccf-38ddb676902d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_203_owner_member_cannot_get_vendor_passthru_methods [0.209430s] ... 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-ffc85ea0-89db-4257-b0a8-0e557aca7597
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_admin [0.212923s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-804fe843-ed02-4af4-aef7-48f00ddb7f03
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "64e7f86b-f843-44e0-9b33-6b7eb4bec41b", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.302429s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_admin [0.251520s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4deac6ba-90c1-4da5-967f-2cf7eb5837ee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_get_service [0.108974s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c4f54a22-3ea3-4280-97c1-2f1d28ae65de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "70260ca3-3d1e-43df-96ae-351b752241c7", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_204_owner_reader_cannot_get_vendor_passthru_methods [0.215160s] ... 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-409b8161-8d0b-4abd-8969-0a2f0e311e5c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_get_service_project [0.112339s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c6149a32-4af2-4827-bb08-8b8aa9f1fab3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "7422c6c5-9bc9-4538-a5f8-dfd10a2f26b1", "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.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_member [0.227813s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-96d6eed5-7e18-487c-92c9-b2636b75be39
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.289498s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_get_service_project_disabled [0.129636s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2f89dde2-483e-4ad5-84db-5f082e362ac0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": []}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_205_lessee_admin_cannot_get_vendor_passthru_methods [0.241419s] ... 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-81f1a342-f312-44bf-996a-59f9701ba656
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_get_service_project_admin [0.113325s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-300ec045-addd-4fe3-ae8f-51f98d2b90ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_detail_get_observer [0.238476s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bca612f9-41ad-444e-b4db-c1f67450f75f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_get_other_admin ... SKIPPED: Not implemented yet
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.299151s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_lessee_manager_cannot_get_vendor_passthru_methods [0.236419s] ... 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-8a91037d-0c34-458b-ac10-13aca785908b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_detail_get_admin [0.211032s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-200da3c8-74e8-4ea4-a037-b0e385792e0d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:25.191211+00:00", "updated_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-06-04T21:51:25.192813+00:00", "updated_at": "2025-06-04T21:51:25.197340+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": "b4d831d8-87ba-427a-a2ba-cefb8d661409", "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": "b4d831d8-87ba-427a-a2ba-cefb8d661409", "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-06-04T21:51:25.264687+00:00", "updated_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.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.313327s] ... 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-28708722-6772-48c2-819b-318578705b96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_207_lessee_member_cannot_get_vendor_passthru_methods [0.255742s] ... 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-bbb27b48-2674-4b4d-9b95-42cff6c7f248
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.335314s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_detail_get_member [0.210757s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3e5ea3a9-2c88-4980-aa83-8989e30d5be4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:25.478786+00:00", "updated_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-06-04T21:51:25.483200+00:00", "updated_at": "2025-06-04T21:51:25.503758+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": "ca4a008e-a017-48bd-9dbf-af08a9e1265d", "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": "ca4a008e-a017-48bd-9dbf-af08a9e1265d", "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-06-04T21:51:25.533727+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "
    rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_nodes_detail_get_reader [0.136599s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-194a2ac5-3924-4194-b6a9-281247bd19a9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:25.616427+00:00", "updated_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-06-04T21:51:25.619801+00:00", "updated_at": "2025-06-04T21:51:25.628947+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": "2e151633-2a8f-4fb7-9f1f-187aa54179d7", "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": "2e151633-2a8f-4fb7-9f1f-187aa54179d7", "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-06-04T21:51:25.656136+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "
    rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_208_lessee_reader_cannot_get_vendor_passthru_methods [0.296998s] ... 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-1beca55c-0fbb-435a-a446-fddf246a706e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_nodes_detail_get_service [0.133574s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-240ceda3-c405-436a-82a3-5de79c934472
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:25.766310+00:00", "updated_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-06-04T21:51:25.767631+00:00", "updated_at": "2025-06-04T21:51:25.779563+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": "b862a2d6-5178-49f4-ac3d-f84742878825", "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": "b862a2d6-5178-49f4-ac3d-f84742878825", "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-06-04T21:51:25.799728+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "
    rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.317418s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.463078s] ... 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-e8ac942d-642c-445e-83ce-75f514832369
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_get_admin [0.137199s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ebded77e-bd5b-4466-a56f-080932111ca2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:25.900392+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach [0.136118s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_209_owner_admin_cannot_get_vendor_passthru [0.249553s] ... 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-7b2aeb84-feaf-4782-9b2c-a14324830988
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked [0.111433s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_get_member [0.176452s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8c0578f5-239a-4daa-a4f5-a1a7f736c24e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:26.064297+00:00", "updated_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.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.303552s] ... 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-87bf5976-8d9b-403f-802e-18883b258dbf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_owner_manager_cannot_get_vendor_passthru [0.183026s] ... 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-739ae4d1-0d50-4e46-af2d-9f021acc97f2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error [0.158015s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_211_owner_service_cannot_get_vendor_passthru [0.184194s] ... 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-e429f153-839b-4930-999e-b3f270953cd8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_get_reader [0.347143s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-18f94ba9-c78d-459e-9191-bed027ceb407
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-06-04T21:51:26.300107+00:00", "updated_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.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.327037s] ... 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-e1e1784c-7003-4d1c-99dd-9c2a1b519c34
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_patch_admin [0.275208s] ... 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-3fbcadb2-a86d-46f1-b8eb-ba09aa71a7bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_system_admin_can_patch_chassis [0.164550s] ... 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-8010fd93-0681-4106-a1f2-e0b5a1200740
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.738165s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.177803s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_025_system_member_can_patch_conductor_group [0.272041s] ... 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-b0c306af-7453-4b62-85bb-ae009a4e88f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.133687s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.VifTestCase.test_vif_detach [0.182751s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_node_ident_patch_member [0.289078s] ... 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-afa1c25d-222e-4c74-b947-74ffe15fffb3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_owner_member_cannot_get_vendor_passthru [1.173203s] ... 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-3e1d1ef9-2f61-46c1-86ad-39e89414a56c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked [0.128097s] ... ok
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.148651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [1.282080s] ... 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-f10db796-abb4-4e1e-92bf-b8c370a570ad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_node_ident_patch_service [0.305711s] ... 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-6889f813-2f12-42ce-a1ee-dbb97068953d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error [0.111241s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_reader_cannot_get_vendor_passthru [0.295788s] ... 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-cedec937-4153-409d-ac19-e5d6fd36c66f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.130657s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.328445s] ... 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-32f8372d-641e-4a6d-b257-57006c291861
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive [0.140713s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_node_ident_patch_service_project [0.352216s] ... 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-f16e552d-5a75-4e01-888c-72a96b737b84
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_214_lessee_admin_cannot_get_vendor_passthru [0.315083s] ... 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-0e6342dc-c5f5-4857-92cd-8ad4d4af9b36
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check [0.130299s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_node_ident_patch_reader [0.198174s] ... 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-108f2c79-a2a2-4983-bdc6-31c01d092796
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit [0.068367s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.318947s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f7e013fe-1af0-4ecb-95b5-61d69c84bba8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run [0.139941s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_215_lessee_manager_cannot_get_vendor_passthru [0.301505s] ... 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-86a08fbf-ba35-4308-b8f9-1aa95b9c999d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_node_ident_delete_admin [0.240411s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-ae96a857-cad0-40d0-ac9f-87af40e30612
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.294884s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ebcd7486-2f30-4b3e-8d6f-c4d238d70fe2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_216_lessee_member_cannot_get_vendor_passthru [0.278249s] ... 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-0d06dd49-b5fb-41e6-a638-ac941a76d883
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_node_ident_delete_service [0.344539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4a2cc79f-67e5-47e2-b680-597e9ff5bbc1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.275523s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-91e979d1-547d-4375-8ff3-f136e7e54d73
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_217_lessee_reader_cannot_get_vendor_passthru [0.291620s] ... 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-8ddf1f0c-3189-459e-9961-2b73551f6b24
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_node_ident_delete_member [0.252953s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f06c7eff-b425-469e-b1cb-48e17062e32b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_admin [0.357385s] ... 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-8818f56d-fa56-4573-8eaf-d8e8ae488b24
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_node_ident_delete_reader [0.224146s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b4d932a4-b63f-40d2-9978-be08f09cb6df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_218_owner_admin_cannot_post_vendor_passthru [0.336551s] ... 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-6deb2af5-e8da-4015-a2aa-ca5ce8ab8407
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_member [0.289939s] ... 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-c2fdb548-119a-4c69-a02a-1a0dc76f9f08
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_owner_manager_cannot_post_vendor_passthru [0.284876s] ... 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-44819d67-3635-414b-8ecd-cbb98729cc00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_get_observer [0.292822s] ... 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-f4d7e552-05db-4bd1-a81b-b03fa6debb55
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_220_owner_service_cannot_post_vendor_passthru [0.281896s] ... 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-37f8e5ef-c81f-4583-b87b-9acbbb0aaf5d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.290874s] ... 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-6abc532c-4dec-4dd7-9974-f945ec1e2145
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_member_cannot_post_vendor_passthru [0.300523s] ... 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-f9ee30e9-d5c6-4857-bf1c-7f717d2219e6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_validate_get_admin [0.940215s] ... 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-0602ef7e-a8fe-4361-905b-735d2e04a555
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_validate_get_member [0.222594s] ... 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-5cb5d5d7-5352-4867-a3d7-b4dba84da80d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.327627s] ... 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-f5253057-05ed-4139-a75f-b8a95fdbac3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_owner_reader_cannot_post_vendor_passthru [0.325414s] ... 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-3a7f5ea8-f5b2-43a7-8cf9-a12a6a8b6c7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple [2.225149s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.088227s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_validate_get_service [0.256344s] ... 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-b2b5be8f-df36-4183-9a7d-06e93aaecf20
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.287941s] ... 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-62b9c953-0a18-4328-849a-b8bf77b4efba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_lessee_admin_cannot_post_vendor_passthru [0.289697s] ... 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-7c8d3d25-835a-44e6-8b2d-e8302d2445b6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.189616s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_validate_get_service_project [0.303649s] ... 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-ec7eec48-2726-4127-a010-e392b7b787a6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_service_abort_tear_down_fail [0.204640s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_137_ports_get_admin [0.260686s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ec91b956-d93e-40e1-b37a-186a598541b8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_lessee_manager_cannot_post_vendor_passthru [0.312741s] ... 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-2be06f89-a9c2-4bc9-bb65-6ad983ee84df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_member [0.227490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a6ddcec2-19fb-4b67-b43e-412c9ab3b410
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_225_lessee_member_cannot_post_vendor_passthru [0.188814s] ... 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-98e8beb6-e972-4d51-a1ee-a2f7d319ad12
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_early [0.346873s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_139_ports_get_observer [0.182887s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5240de58-cdbe-4d67-b6c4-34c7a7bb2140
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_validate_get_reader [0.445241s] ... 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-d3370f47-21de-471f-83a0-99d1fb9f9c96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_226_lessee_reader_cannot_post_vendor_passthru [0.256882s] ... 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-fbf3c246-d70a-4a1b-8804-b7f0e793ef4b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_with_step [0.377019s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_140_ports_post_admin [0.341710s] ... 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-23cf117f-3c27-42e4-8558-b5498c032f34
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_maintenance_put_admin [0.445092s] ... 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-b866a22f-7dbe-45b0-8eaa-4113c5125018
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_227_owner_admin_cannot_put_vendor_passthru [0.320428s] ... 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-0cb4787a-598d-42d8-8dd9-4436f8d3272b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_clean_step_automated_execute_fail [0.326061s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_141_ports_post_member [0.307237s] ... 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-79ecd398-117f-40be-a570-44fff74c6c0d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_maintenance_put_member [0.301796s] ... 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-402141b1-105e-4e13-b2c4-129ab9568de7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_228_owner_manager_cannot_put_vendor_passthru [0.301453s] ... 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-1d1c8323-2b59-42ab-8b0f-9896640829a4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_post_observer [0.317648s] ... 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-1cce32f8-714c-416f-8d1a-91d5a70e8d72
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_maintenance_put_reader [0.285687s] ... 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-11aa41c5-d1ee-42c6-9a9b-ea73d0f515fe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_fail_in_tear_down_service [0.391246s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_229_owner_service_cannot_put_vendor_passthru [0.333787s] ... 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-d5e4f19d-7eb3-4df2-b66c-084b937fe897
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_last_step_noop [0.245677s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_admin [0.304455s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-11a7debc-8286-4e59-ac04-c43c4a6fb7c1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_maintenance_delete_admin [0.308716s] ... 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-81bf426e-e16f-4be8-abaa-3281b6ffbc7c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_230_owner_member_cannot_put_vendor_passthru [0.306776s] ... 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-c8bcaa4b-3cdd-465d-a237-43d61e1c303b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_member [0.272959s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4e0d9c5c-79fb-4c39-ba8e-eb7f64d96be2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_maintenance_delete_member [0.291507s] ... 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-e2c09a18-434c-4dfe-9bce-b16871f0ef6e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_no_steps [0.373890s] ... ok
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.api.test_acl.TestRBACProjectScoped.test_project_scoped_231_owner_reader_cannot_put_vendor_passthru [0.337929s] ... 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-9b8578db-f3c7-4af4-9b54-de21e5464773
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_detail_get_observer [0.325734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8cbf10a7-c449-454b-9fa9-8e82d52792e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_bad_step_return_value [0.261927s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_maintenance_delete_reader [0.289225s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5ee8a41f-255e-4b66-b6c9-8a7eefa971a4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_admin [0.166341s] ... 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-6604ca6b-b77f-4c66-9b41-31c7504c4ad0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_232_lessee_admin_cannot_put_vendor_passthru [0.317047s] ... 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-7c629568-c0d9-47de-ac0f-9ad0290d5381
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_manual_last_step_noop [0.265015s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_boot_device_put_admin [0.286043s] ... 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-3abbee38-0212-4e3d-b82a-55724f379adb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_member [0.275100s] ... 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-71c42f75-cf08-4242-8bbc-b69fab4720da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service [0.198007s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_233_lessee_manager_cannot_put_vendor_passthru [0.304002s] ... 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-de6ddb4f-e5fb-4d13-930f-aeee5c2d761c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_management_boot_device_put_member [0.250987s] ... 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-f2f278bb-9994-480f-8671-4af920e4ac0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_get_observer [0.223970s] ... 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-dc8148b5-0af0-4b77-ba8e-a3ea3668cc20
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_network_validate_fail [0.183470s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_management_boot_device_put_reader [0.195489s] ... 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-61dd9a92-fa43-434a-bc6d-5da1c5813fd7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_power_validate_fail [0.170674s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_admin [0.239570s] ... 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-160b12f2-0244-4048-b755-fcc9fe4303aa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_management_boot_device_get_admin [0.185710s] ... 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-e94db16a-b332-4160-8085-e065e02e5c63
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_234_lessee_member_cannot_put_vendor_passthru [0.397149s] ... 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-1f87ecda-a455-423f-b768-f0b4ea60495f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_disable_ramdisk [0.223709s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_management_boot_device_get_member [0.222249s] ... 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-bfb3c7a4-075b-4539-8f8a-f275dfc334be
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_member [0.342044s] ... 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-07f8eb2a-9292-48a6-8f30-033a68b4372f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_235_lessee_reader_cannot_put_vendor_passthru [0.314844s] ... 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-a9e76aa0-b011-4689-bf4d-559060f95f61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_network_validate_fail [0.265871s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_management_boot_device_get_reader [0.202223s] ... 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-20b34d9e-03d2-4492-9443-f8fca447356e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_patch_observer [0.230396s] ... 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-fcea4288-d4e9-4dff-94d7-1fa8c1527082
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_management_boot_device_supported_get_admin [0.136725s] ... 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-e0df57bb-8039-4ccd-9463-fe03ea4332c8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_power_validate_fail [0.154607s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_236_owner_admin_cannot_delete_vendor_passthru [0.295538s] ... 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-e7e00754-265e-490b-a8df-0f0d229fbd35
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_network_error_fail [0.178933s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_admin [0.214068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-05d5df91-7439-4e20-8fb5-bac0f9f8ae07
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_management_boot_device_supported_get_member [0.255159s] ... 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-f0d8cba4-86ea-4c05-99d9-df66f3bf1d20
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_member [0.179496s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ff1c89ae-3975-42bb-aa4a-69c187e4fba9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_237_owner_manager_cannot_delete_vendor_passthru [0.289808s] ... 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-c4d88594-f873-4231-b32d-a6c993260d6b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_active [0.186860s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_management_boot_device_supported_get_reader [0.189481s] ... 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-e491d2a1-0e87-4788-b7c9-d3cea87d1066
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_management_inject_nmi_put_admin [0.096511s] ... 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-2b0a1aa3-578c-40f1-ae6e-800984f5a13f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_ports_port_id_delete_observer [0.203750s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7d801091-25e2-46f0-934d-5bc1ecb6bb7d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_fail [0.184977s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_management_inject_nmi_put_member [0.135944s] ... 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-d5e4da7a-dc5f-493d-8475-9d8cb94ff9a8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_238_owner_service_cannot_delete_vendor_passthru [0.311326s] ... 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-72ef7c94-43ac-4c89-9eb0-ac6f492a7559
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_wait [0.180798s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_management_inject_nmi_put_reader [0.111239s] ... 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-32ca8f2d-db2e-4c94-b3cb-d168c32f1598
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_admin [0.255404s] ... 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-d15016a4-2976-4e79-93d6-20d54285a6af
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_239_owner_member_cannot_delete_vendor_passthru [0.300687s] ... 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-7b7e06df-bbea-490f-a244-a593f1897191
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_get_admin [0.208970s] ... 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-dc21fb91-8036-48da-8181-34e46b09d564
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_member [0.239481s] ... 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-7a5f2fcc-44e0-412b-932b-1e12967ff050
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_240_owner_reader_cannot_delete_vendor_passthru [0.152827s] ... 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-57720a41-46ed-481b-b8cc-db89fb79aa2d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_steps_fail [0.396589s] ... ok
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.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_lessee_admin_cannot_delete_vendor_passthru [0.107304s] ... 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-fb5503a6-5f34-44e8-aa1d-b50930bbe0b6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service [0.134309s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_242_lessee_manager_cannot_delete_vendor_passthru [0.116934s] ... 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-4ea97a05-dd14-40f1-a7cb-ba908cca104e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_delete_vendor_passthru [0.077779s] ... 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-26e2bc67-1dc8-492a-a920-2b84ce95a446
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service_no_skip_step [0.178235s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_get_member [0.502611s] ... 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-42360c55-bcd2-4101-b57c-a629a08d0f9c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_get_observer [0.473105s] ... 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-8ef1256b-1d0b-4428-bb6e-4040db04c9cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_lessee_reader_cannot_delete_vendor_passthru [0.104694s] ... 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-d5fe70e9-e92f-413f-8218-25731be0ed91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_owner_reader_get_traits [0.166807s] ... 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-6147d416-352c-4591-9d4f-b64aefa1c081
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"traits": []}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all [0.271965s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_246_owner_reader_get_traits_service [0.125391s] ... 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-86b892dd-72e7-4e71-8ced-2a1efbeeb334
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"traits": []}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_get_reader [0.360974s] ... 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-60cc091a-10bf-470f-8939-89648c2c1781
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.354058s] ... 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-2da8230a-aa07-4e8d-b3e5-4a746e7aa758
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all_disable_ramdisk [0.337630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_power_put_admin [0.303873s] ... 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-3104468a-59d9-47d0-8351-a8eeaa4de9ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_member [0.328629s] ... 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-7c0bf9e3-f3e7-446e-80e2-3706731cffa2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_collect_logs [0.253668s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_power_put_member [0.313052s] ... 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-6ddc90f9-1522-492d-a36c-58df788d0440
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_lessee_reader_get_traits [0.652595s] ... 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-6cf38093-3547-48b7-9459-241c9d140a1e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"traits": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.353541s] ... 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-b4299113-1438-4462-bfa4-7a7aa704d757
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_third_party_admin_cannot_get_traits [0.102881s] ... 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-127a3ed0-3ed5-490b-a7fd-bd1b134bf1c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_admin [0.218546s] ... 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-b06df756-b18e-48f1-961d-80f50176cd7e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_249_owner_admin_can_put_traits [0.262315s] ... 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-9e9713b7-9dbb-473a-8b73-3fd11972b950
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_power_put_reader [0.409560s] ... 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-58b18482-80c8-4fad-b6bd-b99a2e6827ab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_owner_manager_can_put_traits [0.202353s] ... 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-490cb723-dfb2-44cd-bc79-4ce0161bb540
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_boot_mode_put_admin [0.383841s] ... 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-502d9dc0-8700-4e79-b989-dc892f105a13
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_owner_service_can_put_traits [0.226844s] ... 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-00b07a79-de2e-4bd5-b6a9-36ab59ecc0f6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_owner_member_cannot_put_traits [0.186529s] ... 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-af9c8948-0321-4f71-b87b-a20d6831bd3e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_boot_mode_put_member [0.221451s] ... 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-cd3e8b60-a2d8-4ae2-934d-d3348202a18d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_continue_from_last_cleaning [1.197473s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DoNodeServiceTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.152872s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_boot_mode_put_reader [0.196428s] ... 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-50f6600f-9f60-46ef-8908-052043d1b236
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_admin_cannot_put_traits [0.255542s] ... 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-2700f02f-d64c-41de-bed4-fc7eaa731058
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_member [0.970293s] ... 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-c68fed54-c060-42eb-a999-81ca5aec34de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_agent_busy [0.166855s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_254_lessee_manager_cannot_put_traits [0.122770s] ... 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-c7a96719-cee0-4c6c-923b-e8a9518d2997
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_secure_boot_put_admin [0.206444s] ... 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-f9ed6717-cd52-4a34-b515-7accc81ec8ab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_lessee_member_cannot_put_traits [0.121089s] ... 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-d0cd8b3e-62a6-4bab-a214-524731e378a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_automated_first_step_async [0.182874s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_secure_boot_put_member [0.207359s] ... 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-f335b4f2-6ab6-4fd7-9e2e-1e90dbb441b6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_256_third_party_admin_cannot_put_traits [0.142434s] ... 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-1ac8132a-f21f-457c-9f78-4fea7b4fb6a5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_get_observer [0.380808s] ... 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-fb40f8c0-ee01-4c97-af8f-929772eb184b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_active [0.169408s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_257_third_party_admin_cannot_put_traits_service [0.100582s] ... 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-dc8c1534-1d3d-48f8-bb39-8095932a7da3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_secure_boot_put_reader [0.229894s] ... 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-c66681d5-271b-49b6-a4ff-729c7d0ad0a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_wait [0.176007s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_258_owner_admin_can_delete_traits [0.203241s] ... 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-9ca71d70-9404-4a22-8119-741caa81525c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.310923s] ... 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-8d326718-3550-40f4-9562-e2a0804f53eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_manual_first_step_async [0.183686s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_259_owner_manager_can_delete_traits [0.306486s] ... 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-cc685ddd-5903-4857-9879-d01d4232eabf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.352845s] ... 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-d4e5f048-aa13-4e8e-aa6e-557a56ca5687
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot [0.261233s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_260_owner_member_cannot_delete_traits [0.259768s] ... 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-8bdf02f4-0815-450c-b52b-26e674c408c2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_fail [0.193294s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.342622s] ... 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-66b7652b-a6b2-40bd-b30e-aef073de78b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_261_lessee_admin_cannot_delete_traits [0.216623s] ... 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-e3878345-88aa-42bf-8445-a09eb7294403
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_last_step [0.202586s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_states_provision_put_admin [0.918354s] ... 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-7addafdb-4b60-4ceb-a662-ce3e8a5e4add
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_admin [0.270105s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1650487e-04e6-4b65-8c41-b6bd4f60a740
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_node_service_steps_fail_poweroff [0.233918s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_262_lessee_manager_cannot_delete_traits [0.248730s] ... 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-8c9aea27-565e-4810-be63-857586732bb9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_states_provision_put_member [0.283733s] ... 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-7f24b738-3958-4c3d-b130-c773cbbb8aa1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.181828s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_263_lessee_member_cannot_delete_traits [0.238484s] ... 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-aef12319-d632-4dcc-913f-4e25fb813a66
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_states_provision_put_reader [0.186451s] ... 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-58b063a3-a9e1-45d6-8040-cb10e564ecad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_168_volume_get_member [0.369477s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a2125056-c5ae-4867-9396-983eb67dc392
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_states_provision_put_service [0.086764s] ... 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-4cd4afa3-af8a-49da-82bd-3331f16af514
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value [0.207577s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_states_raid_put_admin [0.150671s] ... 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-51578807-e59b-4433-8cd8-dc0876499ebe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_264_third_party_admin_cannot_delete_traits [0.268380s] ... 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-0b8b0788-f14a-444f-aba3-62a03d137ac7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok [0.212566s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_169_volume_get_observer [0.345434s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1aae6867-d768-4607-a72f-495b62d68489
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_074_nodes_states_raid_put_member [0.179764s] ... 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-82341976-637a-4b7b-b28b-ea46006a69c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_states_raid_put_reader [0.102912s] ... 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-b736401d-2967-46a3-9d33-c77a52a4a370
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_skip_missing [0.206145s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_265_owner_admin_can_put_custom_traits [0.325363s] ... 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-ddfe610e-5793-4b32-ad15-80692afbbfb8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_states_console_get_admin [0.089180s] ... 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-6d43e9ec-5848-475a-99d6-b2b967744383
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_admin [0.220350s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4230aec6-2651-4772-85fa-0d982d57cb05
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_states_console_get_member [0.144166s] ... 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-bbfd8e86-36d7-4f59-a63d-3c79ad83b7ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_member [0.175684s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-224b3de1-359f-487c-89fc-25178e75d270
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps [0.282615s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_states_console_get_reader [0.114941s] ... 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-46441a37-fb6e-44d8-96cb-94cf95f2d99e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_get_observer [0.182492s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d7b17b47-1e79-4963-86f3-057d89ce9b4f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_266_owner_manager_can_put_custom_traits [0.438864s] ... 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-af0d1341-ab42-4db4-8813-20a867e7b89a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_states_console_get_service [0.148109s] ... 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-5dc6f7db-35ca-4e1d-8a4b-9e88921b74ae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.189379s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_states_console_put_admin [0.092134s] ... 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-63e12b1a-f4c7-424c-8624-a6df406d0a88
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps [0.183775s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_admin [0.238492s] ... 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-c83734e2-7d46-4809-963e-0d7211d558ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_267_owner_member_cannot_put_custom_traits [0.288955s] ... 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-d4538e5c-8cba-450c-aae2-87401a7adf6d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_states_console_put_member [0.222517s] ... 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-a1fcd3a7-8ed3-4237-ba83-470d48d7a377
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps [0.168832s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_states_console_put_reader [0.132870s] ... 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-99d6a4fe-851f-45a8-a1e0-5e4b9aa6db4b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_member [0.240502s] ... 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-a56d71ab-7656-407d-a6eb-cf6e9a8db321
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.161740s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_admin_cannot_put_custom_traits [0.283396s] ... 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-a8929f92-971a-4cbf-8c2b-196088f182ce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_states_console_put_service [0.117899s] ... 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-6d11563c-c3cd-464e-acbd-452d2a630a6d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_vendor_passthru_methods_get_admin [0.094148s] ... 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-2eaf80cd-9b8e-4d2e-953e-d95bba860d10
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.176112s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_175_volume_connectors_post_observer [0.227240s] ... 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-200120b6-b2f0-47b8-8beb-48dc678ab29a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_vendor_passthru_methods_get_member [0.156446s] ... 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-5b8e123c-6969-47a8-a570-73c9a4779117
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_lessee_manager_cannot_put_custom_traits [0.311283s] ... 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-8ad8527f-2542-4887-8d52-6f0894b87ea0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps [0.188005s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.258848s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/2c83b4aa-4fb4-4045-92d8-a729a168396c WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-fc23d049-98eb-4960-ac86-1943629eca7c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 2c83b4aa-4fb4-4045-92d8-a729a168396c could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_vendor_passthru_methods_get_reader [0.188583s] ... 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-cb30644b-4526-4004-bbaf-303f62fe7a85
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps [0.180911s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_vendor_passthru_get_admin [0.093091s] ... 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-88c312f4-5bed-4970-8d43-3bb9d8f0894f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.206206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/4f561c05-6fdc-4fe4-83bc-d5739b0e0e2b WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9a4bcd40-1d2f-491c-adc2-cc591545cf8b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 4f561c05-6fdc-4fe4-83bc-d5739b0e0e2b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_put_custom_traits [0.309282s] ... 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-0b6948ec-f908-4dd7-92cd-bb9f4666e126
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_vendor_passthru_get_member [0.115284s] ... 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-5c14e119-09d0-4a5d-9aae-afd9f14e2cce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps [0.201529s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_vendor_passthru_get_reader [0.114185s] ... 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-b00dacf2-d249-4312-a324-26fc64078c51
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.162032s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.294609s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/98218832-8e93-44fb-b70d-fe9f50d7467d WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f61577be-8038-45c4-a0ba-0fdda1c2740a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 98218832-8e93-44fb-b70d-fe9f50d7467d could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_put_custom_traits [0.281877s] ... 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-ce15c8e2-7b1b-43a7-80aa-2a622e140ac9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_vendor_passthru_post_admin [0.159226s] ... 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-03876749-ee59-4c43-9a15-8dc580de4294
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps [0.156494s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_vendor_passthru_post_member [0.229622s] ... 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-800cb8d3-0f64-478d-b826-ce1ce3bfb12a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_272_owner_reader_get_vifs [0.292872s] ... 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-15665edb-ec8d-4400-8092-cf156d6285e1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing [0.170099s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.317514s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/96402f69-5943-4ecb-a1b9-fdca5860b722 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e6c2d8d6-620e-4aa5-9c68-04a819be7a76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 96402f69-5943-4ecb-a1b9-fdca5860b722 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_vendor_passthru_post_reader [0.140750s] ... 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-a8612979-1ade-4926-b092-6695eeab4751
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps [0.200321s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.232743s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/885230b0-84d2-4e38-8997-d22a0e430d29 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2aca0611-cf9a-41ce-9286-f2dea4ae5e06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 885230b0-84d2-4e38-8997-d22a0e430d29 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_get_vifs [0.329904s] ... 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-77e857ad-2eed-4829-b958-36a1dae07652
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_vendor_passthru_put_admin [0.257361s] ... 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-52a6cad4-2946-4882-9497-9d8a97d34313
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.208492s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.283782s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/c07fd2cd-1339-4633-a80b-62033728a532 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ebee95e1-51c8-46fc-aeb3-3901371191d9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector c07fd2cd-1339-4633-a80b-62033728a532 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_vendor_passthru_put_member [0.197130s] ... 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-6b74e3d9-ac8a-4438-b583-4000c4c732c1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps [0.180230s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_get_vifs [0.302031s] ... 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-e5db0864-57ae-4c5a-9a4e-2d77cf3212c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.205830s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/5ffcfc9a-f88f-4aae-9853-10309a64190d GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8ff58b3c-f5a8-4277-ba9e-3d9d62e4dafd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 5ffcfc9a-f88f-4aae-9853-10309a64190d could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.182090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_vendor_passthru_put_reader [0.212949s] ... 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-9c0be815-f94e-465e-9306-2d3d1f2347cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.214970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/e979c8e6-bd18-4de6-a95e-0492ce09ca56 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0167f7a0-29a2-403d-a848-f3aa1c24c04e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector e979c8e6-bd18-4de6-a95e-0492ce09ca56 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_275_owner_admin_can_post_vifs [0.345358s] ... 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-e23ee4a7-9214-46b8-93c9-e26cb0040f8d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_vendor_passthru_delete_admin [0.196154s] ... 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-33517e2c-df94-41eb-a4a0-8046c3511687
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.232294s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.152430s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.230339s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/16650e7c-a5f1-4813-a6e2-9c0f806dbb70 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a46075ea-9a7f-4c6c-9f76-421df356c542
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 16650e7c-a5f1-4813-a6e2-9c0f806dbb70 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_vendor_passthru_delete_member [0.226549s] ... 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-84b3119f-87ca-42d4-8768-0c667dff648e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_276_service_can_post_vifs_for_own_project [0.301717s] ... 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-f1e48590-6db3-49e3-a37d-b97c6e68b9a6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.166235s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_admin [0.191361s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6dc1f636-a866-4f2c-9410-a3329e3ff82a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.140487s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_277_service_cannot_post_vifs_for_other_project [0.254628s] ... 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-c6942422-1dfe-46a8-9194-d52ca5eb00de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_vendor_passthru_delete_reader [0.303785s] ... 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-f5b8cf16-9612-4fd5-99f3-0dbe0c2661e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.163390s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_member [0.262635s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fbdea2b3-9bd3-4e10-b612-23c17bb192c8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_traits_get_admin [0.244138s] ... 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-c0c2b469-8bd2-4469-9963-b5451edc5688
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"traits": ["trait1"]}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.163559s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_manager_can_post_vifs [0.298216s] ... 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-21e5ae81-b2f3-4793-b7a1-e0ecee5b4892
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_187_volume_targets_get_observer [0.289028s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-30f98c84-a76e-408a-8ac4-4170914307d8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.227450s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_traits_get_member [0.325224s] ... 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-91180ee0-acd3-4a68-ae0f-f2907fdd3768
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"traits": ["trait1"]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_lessee_admin_can_post_vifs [0.313070s] ... 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-98de3891-c8fe-413d-a37d-6286daed6141
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.190134s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_admin [0.301703s] ... 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-45608938-f5e1-4ca6-a4f3-7536080a4b2b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_280_lessee_manager_can_post_vifs [0.188164s] ... 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-16293b4c-7ab4-4476-8310-a43f31e9d264
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.196463s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_281_owner_member_can_post_vifs [0.149831s] ... 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-1cf38098-bb2d-4faa-9c4b-4172c520e473
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_member [0.323411s] ... 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-4491149d-0546-49b3-a43a-bfb6efc46be0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.185856s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.181187s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_190_volume_targets_post_observer [0.331073s] ... 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-38ac9795-04e3-4caa-91db-c47808b462ce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.180938s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_member_cannot_post_vifs [0.552289s] ... 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-776271f9-7b6a-4ad3-ad31-78d4e0b58267
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_owner_reader_cannot_post_vifs [0.093988s] ... 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-63d32aa4-9e80-4223-9237-99e31c051879
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.222162s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.323620s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/a8fc4ce5-8bca-43eb-8e15-fb842c8e1b02 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-86ce7f7d-4d44-4683-94c8-e5d1f28681d3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a8fc4ce5-8bca-43eb-8e15-fb842c8e1b02 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_lessee_reader_cannot_post_vifs [0.158249s] ... 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-7a1297ab-0c0c-4167-904d-ab19920fb051
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_third_party_admin_cannot_post_vifs [0.114703s] ... 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-ad9cd0f8-1f57-4752-9532-64c034389d5e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.198137s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_traits_get_reader [1.331552s] ... 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-ff2fa1e3-cf0a-4977-9ba9-ac9f318d3fe4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"traits": ["trait1"]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_admin_delete_vifs [0.149051s] ... 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-10962dc6-77af-4071-a349-cfc130ac94fe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_member [0.294274s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/89f7ad1b-1378-4c72-ac68-adac08d3cf28 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7100f14d-b255-48c9-96f3-646e27a232d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 89f7ad1b-1378-4c72-ac68-adac08d3cf28 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_manager_delete_vifs [0.126987s] ... 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-4442f52f-a2b1-407d-850e-cc5c71ad5be6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_traits_put_admin [0.335372s] ... 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-1f2a605e-91a7-4797-9e04-e9aee013053f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_can_delete_vifs [0.179109s] ... 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-ef06ee66-b30c-4374-bf2b-912c1f8b128f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.300089s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/cf552d60-baa8-488b-8986-eda0d144e6de WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3d6ae759-1542-49b1-a674-95fab6c0d815
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target cf552d60-baa8-488b-8986-eda0d144e6de could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_lessee_manager_can_delete_vifs [0.127860s] ... 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-3a840145-3442-4731-a256-4f3e58130344
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_owner_member_can_delete_vifs [0.150434s] ... 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-f04e5bb8-929c-4571-bc72-61364270be0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_traits_put_member [0.407211s] ... 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-64aca277-2a35-4917-bf37-80b95b7a87e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.322298s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/faf27fe0-5478-4201-a810-44bedb043112 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c2f5edff-da81-4071-bd9e-b8a385d74aab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target faf27fe0-5478-4201-a810-44bedb043112 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_lessee_member_cannot_delete_vifs [0.103702s] ... 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-f29961f9-377f-4f0f-9455-cb96836c8077
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_third_party_admin_cannot_delete_vifs [0.118783s] ... 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-481ca246-d25d-4cbd-ad9d-7faaf27af4f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.963607s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_293_service_can_delete_vifs [0.098221s] ... 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-f675fe72-7ffa-4976-aa5d-46134875960f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.314248s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/6cb3ef82-a0fe-4570-bc28-7464ba098851 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ccfd344a-090e-43f1-bb10-e00ad7c7e356
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 6cb3ef82-a0fe-4570-bc28-7464ba098851 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_service_cannot_delete_other_nodes_vifs [0.112020s] ... 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-217f1479-8080-44b4-a511-dd27f97ed8d1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing [0.200624s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_traits_put_reader [0.458953s] ... 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-cc5e3c05-bca9-4241-a1ce-79bad4c52149
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_owner_readers_can_get_indicators [0.220255s] ... 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-07e23676-9c31-4437-8f95-407780f3463e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.235148s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.341180s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/dfb58dc3-b18e-4c12-8aab-fd2fb05e8bf2 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-bd0e5ba5-eff8-4296-876a-e62cb807c4ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target dfb58dc3-b18e-4c12-8aab-fd2fb05e8bf2 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lesse_readers_can_get_indicators [0.140382s] ... 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-f9da61f9-c955-46bf-9fe8-a8a8fd30c5e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_traits_delete_admin [0.326456s] ... 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-fd3fe34f-50ac-4e15-8e7b-ad4e04dfec24
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing [0.207315s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_297_third_party_admin_cannot_get_indicators [0.125682s] ... 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-db566365-d7b2-483a-8db6-549c98252b5a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.311745s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/19168ee9-00d2-4b37-b5ed-0074078cb564 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-eb31f57b-4bdc-47a4-b18d-7a90b5c7d2f1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 19168ee9-00d2-4b37-b5ed-0074078cb564 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test__get_service_steps [0.207942s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_298_owner_reader_can_get_indicator_status ... SKIPPED: API appears to be broken and should be patched outside of this work.
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_traits_delete_member [0.316897s] ... 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-f2bc904e-7491-410d-a866-cabbbdcd4735
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.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.
{1} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test_set_node_service_steps [0.217910s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_300_owner_member_can_set_indicator [0.097897s] ... 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-fde2f652-9f27-43a9-8006-e46e342475b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.107901s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_lessee_member_cannot_set_indicator [0.077530s] ... 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-3281e9cd-70a7-4c10-a7d4-ac4e624c5eba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_traits_delete_reader [0.336190s] ... 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-8ce34b36-a0f3-4fd2-a4e9-d8c2c9386ba5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.071559s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_third_party_admin_cannot_set_indicator [0.128771s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PUT /v1/nodes/de32642f-892c-4355-ace1-eccfd2a470c7/management/indicators/component/magic_light WITH None GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f5e5743f-aaea-484a-8f8c-96fb838f474b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node de32642f-892c-4355-ace1-eccfd2a470c7 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.079698s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.065730s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_owner_reader_can_list_portgroups [0.108930s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c648219c-0d9c-4bb5-a489-09493cb8e17b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}, {"uuid": "ab199de1-cad2-48a6-9f83-d2645bc398b1", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/ab199de1-cad2-48a6-9f83-d2645bc398b1", "rel": "self"}, {"href": "http://localhost/portgroups/ab199de1-cad2-48a6-9f83-d2645bc398b1", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.047167s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.026316s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.049005s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.072722s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.039066s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.037277s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_owner_service_can_list_portgroups [0.265030s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6fd7b582-dfa5-4dc2-918c-b77eb73bd527
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}, {"uuid": "a564970c-1a10-4fe0-8e29-89d01c046227", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/a564970c-1a10-4fe0-8e29-89d01c046227", "rel": "self"}, {"href": "http://localhost/portgroups/a564970c-1a10-4fe0-8e29-89d01c046227", "rel": "bookmark"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_traits_trait_put_admin [0.461374s] ... 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-066882c9-87d9-44bd-befd-75334c99f76d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.032774s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.063821s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.079089s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_member [1.131599s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/d98ed872-f7f7-4368-b24d-02c638770041 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-45196692-80c6-461b-a5dc-43e8bc065407
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target d98ed872-f7f7-4368-b24d-02c638770041 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.067154s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.031959s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_lessee_reader_can_list_portgroups [0.307239s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1446bd29-c76e-4d81-94c9-bd385db68f6f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "e37595c2-b304-4314-9bf5-a813ce52dd71", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/e37595c2-b304-4314-9bf5-a813ce52dd71", "rel": "self"}, {"href": "http://localhost/portgroups/e37595c2-b304-4314-9bf5-a813ce52dd71", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient [0.057031s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_109_nodes_traits_trait_put_member [0.342728s] ... 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-5a9b49a9-e047-4072-8445-88267ca8a486
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.072495s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.032811s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.062928s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.333865s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/45a7f73e-046b-4d45-bb63-271352977ee8 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2bc04c86-eb42-4254-a0c8-19f573f7a403
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 45a7f73e-046b-4d45-bb63-271352977ee8 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.057885s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.054317s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_third_party_admin_cannot_list_portgroups [0.338780s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5412819e-8c8b-4c1f-a491-fe02b19a0f8a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": []}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.069073s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_traits_trait_put_reader [0.325837s] ... 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-dbf75bc7-030d-4711-8b35-194f0c173962
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries [0.054044s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.085881s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_admin [0.271268s] ... 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-5454d38b-55d9-4b8b-a9ea-cc6f3df9b8c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [0.054277s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.043655s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.048286s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_307_owner_reader_can_read_portgroup [0.318166s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-017ca2a8-238a-46fe-bcbe-81a41478dda9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2025-06-04T21:51:50.662589+00:00", "updated_at": null, "address": "01:03:09:ff:01:01", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "magicfoo", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.050569s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_traits_trait_delete_admin [0.357920s] ... 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-814d7f79-1824-4ce6-9d36-430fd992c3c2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.053480s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_member [0.262288s] ... 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-8b495521-08a1-408c-98fe-30623dc0bc79
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.075865s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.117430s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_lessee_reader_can_read_portgroup [0.290603s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/d87f09e6-983e-4d3e-9e2e-baa6b52a8fdb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-33ea4835-1638-47d6-a816-c640892f6e07
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d87f09e6-983e-4d3e-9e2e-baa6b52a8fdb", "created_at": "2025-06-04T21:51:51.023609+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/d87f09e6-983e-4d3e-9e2e-baa6b52a8fdb", "rel": "self"}, {"href": "http://localhost/portgroups/d87f09e6-983e-4d3e-9e2e-baa6b52a8fdb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/d87f09e6-983e-4d3e-9e2e-baa6b52a8fdb/ports", "rel": "self"}, {"href": "http://localhost/portgroups/d87f09e6-983e-4d3e-9e2e-baa6b52a8fdb/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_202_nodes_volume_get_observer [0.271596s] ... 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-69bc95d2-fc22-4578-be90-10183a240014
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_nodes_traits_trait_delete_member [0.318101s] ... 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-d27f9634-74fb-4e1a-aa5d-a3492c0d29f3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.124208s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.103130s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_third_party_admin_cannot_read_portgroup [0.294314s] ... 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-a18936e7-f8de-49a2-b3ae-cee3f9e7d583
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.092499s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.227419s] ... 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-f8e064f5-88c7-471a-bd7c-9b2218e61170
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.085250s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_can_add_portgroup [0.137182s] ... 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/f71c901f-267e-4b30-a65c-d4f4e9bbb69d
Openstack-Request-Id: req-b8075e2b-c89f-489b-bb91-f58346a5dc68
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f71c901f-267e-4b30-a65c-d4f4e9bbb69d", "created_at": "2025-06-04T21:51:51.555460+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/f71c901f-267e-4b30-a65c-d4f4e9bbb69d", "rel": "self"}, {"href": "http://localhost/portgroups/f71c901f-267e-4b30-a65c-d4f4e9bbb69d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/f71c901f-267e-4b30-a65c-d4f4e9bbb69d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/f71c901f-267e-4b30-a65c-d4f4e9bbb69d/ports", "rel": "bookmark"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_nodes_traits_trait_delete_reader [0.368892s] ... 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-818e5f2b-1a03-4746-858b-b756a68c1b72
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_owner_service_can_add_portgroup [0.128183s] ... 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/2cd3c4d4-60c9-4f0a-b176-2ee7d970f281
Openstack-Request-Id: req-bd59c499-08f0-4b63-8139-ad6889cc9eff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "2cd3c4d4-60c9-4f0a-b176-2ee7d970f281", "created_at": "2025-06-04T21:51:51.682233+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/2cd3c4d4-60c9-4f0a-b176-2ee7d970f281", "rel": "self"}, {"href": "http://localhost/portgroups/2cd3c4d4-60c9-4f0a-b176-2ee7d970f281", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/2cd3c4d4-60c9-4f0a-b176-2ee7d970f281/ports", "rel": "self"}, {"href": "http://localhost/portgroups/2cd3c4d4-60c9-4f0a-b176-2ee7d970f281/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.160093s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.313239s] ... 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-94fec1eb-0034-4424-a4e2-1520a4bd1e3b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_manager_can_add_portgroup [0.132342s] ... 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/b8b4527c-3c0d-4b9a-9fe7-8785dc1fbcdf
Openstack-Request-Id: req-7e0114e1-7533-4765-98c8-609e24ed4e84
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b8b4527c-3c0d-4b9a-9fe7-8785dc1fbcdf", "created_at": "2025-06-04T21:51:51.813526+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/b8b4527c-3c0d-4b9a-9fe7-8785dc1fbcdf", "rel": "self"}, {"href": "http://localhost/portgroups/b8b4527c-3c0d-4b9a-9fe7-8785dc1fbcdf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b8b4527c-3c0d-4b9a-9fe7-8785dc1fbcdf/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b8b4527c-3c0d-4b9a-9fe7-8785dc1fbcdf/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.143662s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_nodes_vifs_get_admin [0.312585s] ... 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-60355e87-0c72-41b2-a67e-30a0e6f52583
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.101802s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.143865s] ... 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-e66b2628-683e-4f3b-8985-acd54ead31c3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.110593s] ... 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-83c0b0b6-b64e-4018-bc5f-e711f61f326e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.119896s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_owner_member_cannot_add_portgroup [0.245921s] ... 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-ea72acf3-2919-44fe-9288-c90887bae0d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.089961s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_member [0.103407s] ... 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-35c5e36c-f71c-4779-85d5-1495b1f07598
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_nodes_vifs_get_member [0.318509s] ... 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-44032109-7aac-49d1-be6b-8647af562ac7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.131560s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_lessee_admin_cannot_add_portgroup [0.223075s] ... 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-6099ca5d-2b9d-4c91-ace3-ce640f8e9f6b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.133400s] ... 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-aba81fe9-e0a0-4d68-b82b-278a503e802e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.092570s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.049372s] ... ok
{1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.072306s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_209_drivers_get_admin [0.214282s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-1751a3d7-71ee-46c9-a0b3-7dc8b4df5760
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_manager_cannot_add_portgroup [0.250833s] ... 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-1945fd98-ade0-4b2b-a479-806f65c5c202
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.051755s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_nodes_vifs_get_reader [0.307756s] ... 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-d92c5040-0bcf-4087-a43d-bc96750a3426
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present [0.105202s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_210_drivers_get_member [0.140776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-859fda1e-8f11-4cc8-bffd-5866ebf00987
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_lessee_member_cannot_add_portgroup [0.189400s] ... 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-da0b5d0c-062b-4aba-ae6a-a56436d580c3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_211_drivers_get_observer [0.120294s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-9561653b-d008-4e66-bee9-177d278056b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty [0.120886s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_admin [0.162364s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-f3c9c766-9669-4312-be68-4e28907d4928
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_nodes_vifs_get_service [0.397623s] ... 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-a1c17c52-fa32-4cc5-b2db-1e2d4ba9f20e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_third_party_admin_cannot_add_portgroup [0.248184s] ... 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-73a5680c-f68f-43fb-9b50-200f906cdee2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_member [0.128104s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e6b0cb0b-c4ae-421e-9143-b691fbdfa8a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_214_drivers_driver_name_get_observer [0.091181s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-a6984f98-f62b-4e3e-b680-d6595252a8d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_admin_can_modify_portgroup [0.222648s] ... 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-5f0428b8-328b-483c-8ee6-83812eb166e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_admin [0.123442s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-35ea4121-c673-47d8-835b-a7bae79a1f39
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_nodes_vifs_post_admin [0.331027s] ... 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-3c1741d9-8dae-4d89-8860-41add9a96842
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_member [0.113355s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-ae2357dd-3af8-4a77-8d51-b7b5c3e518b2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_217_drivers_properties_get_observer [0.106610s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-ce2cbb59-0092-4b4a-bbcd-a7742b872009
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed [0.785387s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.086922s] ... 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-49a4bc88-7d76-45d1-bdfc-8bd55b1b1a36
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_nodes_vifs_post_member [0.352344s] ... 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-b2703583-d9b8-40b4-9485-feaf710e4070
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.087500s] ... 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-53dfb647-eae3-4892-9072-3aca4dac1f95
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok [0.181084s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.111705s] ... 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-86f39137-0dc0-4817-bc08-be8636456884
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported [0.116906s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.093598s] ... 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-374d8394-df61-4b56-b140-5a972301802a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.142868s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_nodes_vifs_post_reader [0.371646s] ... 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-93be6afe-4d9c-4e07-bcd5-60f4df62f8f2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.182860s] ... 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-48cdbd1a-b3f4-4bf4-bd75-6cae30dc26fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.137467s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.100807s] ... 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-ee8c7f30-98a3-4a5f-96ec-3eeec8ba83a4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.094892s] ... 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-471176e7-dc21-4d24-af7b-20f10a1ab44d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.136176s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_manager_can_modify_portgroup [1.112540s] ... 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-b500ab75-db36-4040-a2c3-13cf2cc21671
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_nodes_vifs_post_service [0.291839s] ... 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-3d67cddd-4028-4210-b9c0-5bea884d2687
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.093918s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.169424s] ... 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-9ee1efe4-c0c6-4c44-91c9-d81431518c98
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.086557s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_owner_member_cannot_modify_portgroup [0.221313s] ... 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-16eb46c3-3886-40db-bb93-be4582b2828d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.082641s] ... ok
{1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.099972s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_nodes_vifs_post_service_project [0.370304s] ... 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-3d60113d-7923-4b39-b67c-8a52a622af1d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning [0.068318s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.286605s] ... 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-c8077880-986d-4368-853e-4c89d797a12d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_admin_cannot_modify_portgroup [0.251446s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/d1e741ec-47a7-4d38-b876-7a0a3b59a3a6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-21584fb9-fa48-4166-8dae-b1fb90fcd8e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting [0.099909s] ... ok
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none [0.074160s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.204437s] ... 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-f1040c3c-e226-4c7d-a922-04772152e6a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_nodes_vifs_node_vif_ident_delete_admin [0.271959s] ... 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-ceccc261-fd08-425e-bc51-48134fdd0690
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning [0.104409s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_lessee_manager_cannot_modify_portgroup [0.273479s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/217340ff-d8ba-461a-b5b9-c6e70c160475 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ae5a6a28-562b-4b42-9144-60c0de65f559
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing [0.066656s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.211120s] ... 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-fabc7e6e-66b6-421a-9560-d3405217a937
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant [0.068453s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_lessee_member_cannot_modify_portgroup [0.210496s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/fa8afa8b-45ed-469d-bc66-a866b550fe9f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ab3786b8-0d17-4e36-b6fa-ecc79edd63ae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps [0.120337s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.178303s] ... 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-96f902f1-5495-45a9-bbd2-68ce54801d7f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_nodes_vifs_node_vif_ident_delete_member [0.324368s] ... 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-43b4b0c9-8eb4-46d0-8dc1-3c51b65e450c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_no_skip [0.119518s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_324_third_party_admin_cannot_modify_portgroup [0.223576s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/portgroups/b79a4986-3210-49ac-98db-7b932143870e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-36ce097c-c4a0-4353-94df-1d35f158ca9d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b79a4986-3210-49ac-98db-7b932143870e could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.183523s] ... 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-7373c920-7a08-4db8-a296-74c6128e79e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step [0.110501s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_125_nodes_vifs_node_vif_ident_delete_reader [0.304917s] ... 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-afa23f6c-59fc-47c1-b85b-232e5dd044e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps [0.115467s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_admin_can_delete_portgroup [0.239539s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-270eb6e2-1d78-4a22-9f5b-be94aff9bc17
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip [0.104930s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.267651s] ... 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-1bc1dd53-f517-4ede-be35-f021fcf29ba9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step [0.061454s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.065601s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_exclude_current_conductor [0.030710s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.168247s] ... 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-85b27106-e1c9-49a7-bc8a-8558c6a1cba8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_owner_manager_can_delete_portgroup [0.213300s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-3eff678a-7e29-4066-b85a-0ecb125d4815
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.059443s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_126_nodes_vifs_node_vif_ident_delete_service [0.355074s] ... 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-8cbd1eb0-924e-4a06-b0d6-64adefaa0b84
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.089504s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing
{1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_operation [0.096347s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.059051s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_127_nodes_management_indicators_get_allow ... SKIPPED: Not implemented yet
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_owner_member_cannot_delete_portgroup [0.324688s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e7af85c6-1404-4cc4-a4a2-b724f3d13530
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing
{1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_power_on [0.076564s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.063827s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.077915s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.056012s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_nodes_management_indicators_component_get_allow ... SKIPPED: Not implemented yet
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_owner_service_can_delete_portgroup [0.250994s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-8c33e867-2d1a-48e8-8b3c-9241a0d238cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.071019s] ... ok
{1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_restore_power_state_if_needed_false [0.057233s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.067666s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported [0.061883s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_129_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: Not implemented yet
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_admin_cannot_delete_portgroup [0.241031s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/3db96fb8-4051-4e09-b8d1-725e3f58bc36 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1a7260d9-ff7a-47a7-9ab7-dd60e994673c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.075513s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.141509s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_330_lessee_manager_cannot_delete_portgroup [0.219625s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/f119c89c-f9ea-45d5-8dde-30169c4917ff GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e301ccc9-a616-4536-868b-c9a424fbacbc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: Not implemented yet
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always [0.154352s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_admin [0.903117s] ... 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-fce8f1a1-1991-4e8c-ad93-94e98fd3e5cf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_331_lessee_member_cannot_delete_portgroup [0.212821s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/c60fc565-636e-48df-ab68-e61c76873755 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-886562a7-e0e2-4e12-8cdc-76e413675115
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default [0.080315s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never [0.043981s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [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(
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_portgroups_get_admin [0.308372s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c7f09264-a611-424e-93db-f49ff019358d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [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(
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_member [0.284989s] ... 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-a228d954-9869-451c-8e27-26448cad1d1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_third_party_admin_cannot_delete_portgroup [0.280686s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/38f503eb-33a9-4648-9348-2f73b1b37cc3 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-13b1d850-9977-40b4-90d6-f73eccb76249
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 38f503eb-33a9-4648-9348-2f73b1b37cc3 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.114259s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.057983s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_132_portgroups_get_member [0.278073s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8778847d-1141-40cb-9680-9607e0c688e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_get_observer [0.195465s] ... 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-28628b2d-339c-4563-9e00-bbe563eb04df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.125373s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_auth.AuthConfTestCase.test_add_auth_opts [0.033936s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_333_service_cannot_delete_portgroup [0.246426s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/00e607a2-aee2-471c-a00c-070d6be9e869 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-221ca0d6-08b1-4593-8f2b-b82f739c4b3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 00e607a2-aee2-471c-a00c-070d6be9e869 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.console.container.test_console_container.TestConsoleContainerFactory.test_factory [0.029912s] ... ok
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_client_auth_invalid_fails [0.041836s] ... ok
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_in_choose_security_type_fails [0.025814s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.184149s] ... 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-657bdccf-125d-4d85-904a-922f7af3297c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_security_handshake_fails [0.058656s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_portgroups_get_reader [0.285889s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6b8281ca-a14c-4a96-913d-96df5d833af4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail [0.074361s] ... ok
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail_server_message [0.030646s] ... ok
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_host_version [0.021807s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.196863s] ... 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-8fd35d2b-085b-4faa-a8ce-02d26fe7570c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_node_portgroups [0.315028s] ... 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-b52d8c9e-44b8-40e4-b6a5-aae40bcdc542
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_sec_type_cnt_zero [0.040057s] ... ok
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_tenant_version [0.036939s] ... ok
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_full_run [0.025424s] ... ok
{1} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_parse_version [0.021026s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_portgroups_post_admin [0.328579s] ... 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/331c8f42-8870-4722-b4ab-6f2c00adb455
Openstack-Request-Id: req-712e94e4-c93f-4276-8b64-bc1f763315f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "331c8f42-8870-4722-b4ab-6f2c00adb455", "created_at": "2025-06-04T21:51:58.269104+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/331c8f42-8870-4722-b4ab-6f2c00adb455", "rel": "self"}, {"href": "http://localhost/portgroups/331c8f42-8870-4722-b4ab-6f2c00adb455", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/331c8f42-8870-4722-b4ab-6f2c00adb455/ports", "rel": "self"}, {"href": "http://localhost/portgroups/331c8f42-8870-4722-b4ab-6f2c00adb455/ports", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.221447s] ... 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-cabfa199-9b31-4f33-b664-9c5ed9b5e3e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_node_porgtroups [0.298291s] ... 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-d298c24b-95f8-4d3d-9ecf-af54d94d9367
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "5d0c5c6c-4f02-42e1-9417-8e1c38046f53", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/5d0c5c6c-4f02-42e1-9417-8e1c38046f53", "rel": "self"}, {"href": "http://localhost/portgroups/5d0c5c6c-4f02-42e1-9417-8e1c38046f53", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... SKIPPED: Backend 'mysql+pymysql' is unavailable: Could not connect
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_admin [0.174010s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bc0ab7b6-415a-42f3-89a5-9d156b02e59a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_portgroups_post_member [0.319966s] ... 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-a4191b3b-e81c-4bc8-9bc6-d368fd02cf00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_portgroups [0.251348s] ... 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-0cc3a21f-8de8-4b26-b20e-e494475a7565
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_member [0.214891s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-19520682-585b-4f36-a64e-fce7ff999061
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.371867s] ... ok
{1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.025436s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_service_cannot_get_portgroups [0.166060s] ... 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-fe5bc17e-f6d7-43af-af95-98b7f593861b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.078722s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_243_conductors_get_observer [0.230935s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-847c8f7a-1339-4f5b-b07a-5ca2ffccb8e3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.033583s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_portgroups_post_reader [0.353546s] ... 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-045326f2-d5cd-4fd7-8fd0-d2794b9466cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.092650s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_owner_reader_can_list_ports [0.273147s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ea27cbd5-1cdc-41df-8cdd-924fa906671d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}, {"uuid": "82152a14-e3b4-4396-898a-871b1a7539b1", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/82152a14-e3b4-4396-898a-871b1a7539b1", "rel": "self"}, {"href": "http://localhost/ports/82152a14-e3b4-4396-898a-871b1a7539b1", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.115593s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_admin [0.256331s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9467d442-8a48-4eb8-bb9f-6fc49995bc76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.126837s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_member [0.174621s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ba4fd0c9-a412-4b64-9213-e8d4767a486a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_owner_service_can_list_ports [0.320144s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ac8ae7f6-ccac-44e0-b108-9fb0ed6d4e3d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}, {"uuid": "d03e1bb3-f8b3-40c3-a60d-c56a38c15632", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d03e1bb3-f8b3-40c3-a60d-c56a38c15632", "rel": "self"}, {"href": "http://localhost/ports/d03e1bb3-f8b3-40c3-a60d-c56a38c15632", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.160734s] ... ok
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.058916s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_conductors_hostname_get_observer [0.164344s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1490ab76-e889-43b3-980d-9d8ac5222fa4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.139730s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_lessee_reader_can_list_ports [0.257866s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-aae4a9f2-d712-4e4d-a897-3115f701d502
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "c669639f-6161-43b2-a6df-ade97a282dd7", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/c669639f-6161-43b2-a6df-ade97a282dd7", "rel": "self"}, {"href": "http://localhost/ports/c669639f-6161-43b2-a6df-ade97a282dd7", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_247_allocations_post_admin [0.216470s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cbc605f5-bf38-4038-a071-0a1905cc4258
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.126822s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_248_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward.
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.145712s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_third_party_admin_cannot_list_ports [0.294047s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-176456b8-3ce0-4b52-9a8b-7bd6f4865bd3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_portgroups_detail_get_admin [1.007903s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-527db3fd-c7f2-417d-b19c-069bd6085285
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:51:59.933560+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.100247s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_249_allocations_post_observer [0.215509s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e73a70db-7130-4e5d-9f48-1506bae4517f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.096137s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_portgroups_detail_get_member [0.201507s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-27c62bb0-5d99-45ba-b1de-aa21758cb00c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:00.108800+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.094990s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_owner_reader_can_read_port [0.266969s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0586c041-549e-4b9e-983e-4226e72ce972
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-06-04T21:52:00.153529+00:00", "updated_at": null, "address": "00:00:00:00:00:01", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_admin [0.174821s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2c912e1f-111b-48cb-8fb8-e2cf95e89aee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.115752s] ... ok
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.102105s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_portgroups_detail_get_reader [0.273998s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fa3ff955-8212-49a7-98b7-56f4073a75c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:00.377239+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_owner_service_can_read_port [0.260836s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8b2a49bf-3014-4fc1-ad0f-74c2095b3788
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-06-04T21:52:00.413696+00:00", "updated_at": null, "address": "00:00:00:00:00:01", "extra": {}, "internal_info": {"bar": "buzz"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}], "portgroup_uuid": null}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_member [0.212747s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d40412ce-dd68-4f9c-bdfc-a1e0c6d9bda3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.115597s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_get_observer [0.158741s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1a4ebfb0-2321-4cda-9280-d26bcfa6e296
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid [0.097131s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_portgroups_portgroup_ident_get_admin [0.245654s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-56443d14-5bb3-453f-9d83-fdafe9754d8b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:00.654413+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_344_lessee_reader_can_read_port [0.281157s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/80f271ff-d3ee-4b6c-b18b-16d920a3c063 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-315611ca-d912-46c6-a7e0-7ae68028e6e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "80f271ff-d3ee-4b6c-b18b-16d920a3c063", "created_at": "2025-06-04T21:52:00.717570+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/80f271ff-d3ee-4b6c-b18b-16d920a3c063", "rel": "self"}, {"href": "http://localhost/ports/80f271ff-d3ee-4b6c-b18b-16d920a3c063", "rel": "bookmark"}], "portgroup_uuid": null}
{1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id [0.108068s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.181371s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/a3ef24a8-1f94-4275-bbc6-9ad3060fb7b5 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-57319aa2-43cc-4fc9-a6a2-8995e99d14cb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a3ef24a8-1f94-4275-bbc6-9ad3060fb7b5 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found [0.069655s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_portgroups_portgroup_ident_get_member [0.190212s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4541534e-7b05-42a3-a3f8-1686120a0c07
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:00.879500+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id [0.088320s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_member [0.160801s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/fd141f56-ce73-4109-b729-86200077ccbf WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-0f4e8226-c3b6-4b2b-b82b-0d35683b67dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation fd141f56-ce73-4109-b729-86200077ccbf could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_345_third_party_admin_cannot_read_port [0.279771s] ... 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-15842210-5b73-4bb9-89f9-57f6462b5f19
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_portgroups_portgroup_ident_get_reader [0.167231s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1fb42e99-8218-4c54-bac0-0be6fbfbe19e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:01.054550+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}
{1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty [0.137689s] ... ok
{1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid [0.066927s] ... ok
{1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found [0.046090s] ... ok
{1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list [0.033843s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_portgroups_portgroup_ident_patch_admin [0.196107s] ... 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-38e48c3f-bc8a-413a-a541-fce3030344bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted [0.037617s] ... ok
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.029992s] ... ok
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.029984s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_owner_admin_can_add_ports [0.267761s] ... 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-5db7b85e-508e-42e0-86c1-137e21199598
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.349298s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/4b9cc279-c52b-4990-8918-99b79c7c959a WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2e639044-e55c-44b3-b782-5afaef6aee46
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 4b9cc279-c52b-4990-8918-99b79c7c959a could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.074313s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.110031s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/a621c3d2-5478-4ba6-a7ad-46d921bbe3d1 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ea7dec6a-e6b4-4fdb-8de5-13705bab92e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation a621c3d2-5478-4ba6-a7ad-46d921bbe3d1 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.109836s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.096081s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/61b6e3d2-fdbb-4424-819e-d7e2da621fa6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-274ea9a6-22e4-4daa-ab4f-c47334bcd38b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 61b6e3d2-fdbb-4424-819e-d7e2da621fa6 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.086151s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_portgroups_portgroup_ident_patch_member [0.351815s] ... 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-3a6982e2-c6db-458d-a05e-8b0d5b5969b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.085384s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/50fda897-43c9-495c-90d6-65128a90f77b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-24eaab87-9c18-4f9d-ac6c-48d93d5a5db9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 50fda897-43c9-495c-90d6-65128a90f77b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_owner_manager_can_add_ports [0.344885s] ... 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-a2050733-332e-4b8e-958e-b0a979dd7c2d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.102207s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.094972s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/832f25b9-ff52-4ce3-906b-20a6d3546086 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5ca0288a-4c8a-4916-bc00-cac763573f5a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 832f25b9-ff52-4ce3-906b-20a6d3546086 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.115366s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.090437s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/c82633dc-2f21-491c-86eb-4f540c7da699 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9664173d-3712-4347-957e-545daf1e3e6f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation c82633dc-2f21-491c-86eb-4f540c7da699 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_portgroups_portgroup_ident_patch_reader [0.304841s] ... 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-ddb923e4-d2f8-47f2-8ae0-1a657b9fefe5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.100779s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/7d077ca4-63d8-4f2b-8048-20ddf16f43ce GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8c16beb9-ec63-4de7-8846-c2371682eff8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 7d077ca4-63d8-4f2b-8048-20ddf16f43ce could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.114018s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_owner_admin_cannot_add_ports_to_other_nodes [0.313411s] ... 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-2eab2ae3-fe6b-4ed4-9cf7-59aaede92916
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgoups_by_conductor_groups [0.109887s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_admin [0.123898s] ... 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-d205ca3c-5fe9-4dff-a3d3-546c423779dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.099329s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_member [0.094339s] ... 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-49bea8fe-4577-4a37-b0dd-27aa9e332427
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_portgroups_portgroup_ident_delete_admin [0.275815s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-faefb784-5c10-4db4-b102-e675e50b1688
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.066888s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_get_observer [0.104032s] ... 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-3e220db9-fd0c-4fa7-976a-9aacb9707c64
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.068014s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_admin [0.079742s] ... 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-1538de53-884c-4640-9d64-c86362ea99fd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.055743s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_manager_cannot_add_ports_to_other_nodes [0.326199s] ... 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-3c29f0ef-9aa8-441b-9046-ccd403ef693c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.072232s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_member [0.129173s] ... 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-1ba74092-83d7-40fa-ace5-a7d5066cfb3d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.073879s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_portgroups_portgroup_ident_delete_member [0.330113s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-03126ddd-60ca-4c63-b6b6-079c32da080b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.072347s] ... ok
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.064447s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_nodes_allocation_delete_observer [0.188448s] ... 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-c8daf5f7-0861-4fae-9629-d9f0ab0ca370
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_350_owner_service_cannot_add_ports_to_other_nodes [0.325098s] ... 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-5fbdb637-77bf-4d88-bbf1-05d026ce060e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.090065s] ... ok
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.124719s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_portgroups_portgroup_ident_delete_reader [0.300887s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4f40966d-6184-4234-8e7f-7040dde95cc4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_admin [0.198256s] ... 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-e5031217-48a4-41ff-b8f1-f27cfdabeab1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.113359s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_member [0.130729s] ... 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-ab7c7e68-03a2-4640-98e3-73b933b59e38
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_351_owner_member_cannot_add_port [0.368787s] ... 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-925e4848-49bb-4c48-a2ab-ed30c8bd37cb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.113666s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_post_observer [0.138784s] ... 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-bb942d87-875b-4334-88c9-24e5899537f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.075231s] ... ok
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.091680s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_admin [0.107689s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8f04ac85-5edf-4122-bf27-662e8e2953db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_nodes_portgroups_get_admin [0.425656s] ... 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-7c775005-dacd-4ca2-a52b-ef6e2d7bf115
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.080779s] ... ok
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.065634s] ... ok
{1} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.078305s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_admin_cannot_add_port [0.421495s] ... 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-4a940d46-7967-418d-a029-3b9234821fd3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_nodes_portgroups_get_member [0.326673s] ... 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-c6c58ec3-dc45-42ea-baad-1cef60883b66
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts [0.246362s] ... ok
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.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses [0.170887s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_151_nodes_portgroups_get_reader [0.306183s] ... 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-047413ae-0f96-411a-b8ef-c861a663c7b3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp [0.239110s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_member [0.966629s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f6accfe5-13b3-43e4-a5a1-d16007cbf337
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_nodes_portgroups_get_service [0.287573s] ... 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-9b6f1ae7-a24f-4c32-973e-7b3a109ee576
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.156795s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_153_nodes_portgroups_get_service_project [0.178557s] ... 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-5c838661-91de-4052-b372-7c6b0e6e8cb3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.126038s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_get_observer [0.242589s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-81b045d2-e0ca-43c8-8ad0-e0e7f82e9a39
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.108109s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_353_lessee_manager_cannot_add_port [1.056198s] ... 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-03c89fce-bc19-470d-9ab0-1d26e809697c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_portgroups_get_service_project_disabled [0.195854s] ... 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-969abb06-4503-4789-bb4d-81525ad48e8e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.258609s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/de31982f-0070-405a-9d3a-3b740a775378 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3d59115a-37bb-4458-8d5b-9d5fd5e415ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.180260s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_354_lessee_member_cannot_add_port [0.257629s] ... 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-af34b7c7-b92c-4f7e-b256-4696d0ae629f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.096983s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_portgroups_detail_get_admin [0.291722s] ... 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-9abde578-4b4e-4c21-9ba3-30d26bbc4fcf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:04.822415+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_355_third_party_admin_cannot_add_port [0.123779s] ... 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-9ac5d62d-153d-4d1f-aa5e-26ba8853ed69
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.101319s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.259418s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/bb39258a-6022-4b71-9e42-1b60bde30ab9 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-83a6a816-f2da-435d-bfe8-0b85d7e089e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_356_service_can_add_port [0.101749s] ... 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-a1ad35ac-7100-438b-85ca-42df220088f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.105186s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_357_service_cannot_add_ports_to_other_project [0.095867s] ... 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-67c9e498-0ecd-4661-873a-e5f4127365eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_portgroups_detail_get_member [0.252439s] ... 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-e87374d6-7e8c-4516-951b-0b5a7390af76
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:05.152049+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.112060s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_owner_admin_can_modify_port [0.125754s] ... 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-86efe27f-0ea8-4eaa-9cc2-336f3642f25f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.324389s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/7792bf1e-8f9c-47d7-8a4c-78e4341a460b WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b5bb2774-5b36-4377-be3b-485b4c6d84a6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.153701s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_owner_manager_can_modify_port [0.122421s] ... 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-8f82f548-51d1-4614-9b90-a504efb18a80
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_portgroups_detail_get_reader [0.232042s] ... 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-73899374-0eec-4919-bb3c-efcb96a01e11
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:05.359379+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.093858s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_360_owner_service_can_modify_port [0.130383s] ... 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-98908dc4-3958-4c3d-a271-ab2b202d8215
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_portgroups_detail_get_service [0.190650s] ... 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-d0a8beb5-2d66-45a9-b034-70dc72e833b6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:05.564169+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.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.296935s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/7b8262ff-5f36-40e9-a503-0be81d91184a WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-961178d2-e815-4ceb-971a-ce60723a30e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_owner_member_cannot_modify_port [0.128347s] ... 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-235d41c2-7368-46b5-9038-8b3ff2ef3f2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.201635s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_159_nodes_portgroups_detail_get_service_project [0.199196s] ... 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-749e4201-7b92-468e-afd3-ac00913876f9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-06-04T21:52:05.785832+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.169611s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.244305s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/6e977d09-14cc-4530-b7dd-7a91023c2010 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3a4e8d01-e004-48b5-aefe-ec9aa7dfaab4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_lessee_admin_cannot_modify_port [0.235839s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/c44c9c10-6aca-4acf-9591-a5071fac8d62 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2febd1a7-7460-4259-9df9-756bbd7b08ee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_nodes_portgroups_detail_get_service_project_disabled [0.173350s] ... 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-7dae558f-7f0f-4fb1-8b67-448435724543
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo [0.171248s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_363_lessee_manager_cannot_modify_port [0.186503s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/6c0468d2-4c5b-4a6d-938e-4d390b2c4007 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e5b1bfd6-5d6c-4aba-96d8-4f6b4501bac0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.241884s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/aab8c97a-32df-4924-8b45-c9e62391d33a WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9d5e3d8f-e671-4a4f-8dfe-67c154907d99
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_ports_get_admin [0.171757s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0fdc0704-3ffb-4e56-a354-7508fa72f1a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override [0.170283s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_364_lessee_member_cannot_modify_port [0.187255s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/14332bae-c875-4df1-8286-a6eedaacbd25 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6c099be1-50c7-4de5-833c-66ef495ebd5b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_ports_get_service [0.189112s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-865d2840-6654-4063-98fd-616f60bc1751
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.237776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/34b4709d-5587-445b-b572-3a8151207de4 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8866f5b0-7234-478f-9610-4c3f263f2cb5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_ports_get_service_project [0.100505s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7b1bcbbe-7947-43f8-8a6c-e6ecdacb987e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.078351s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/90b39883-6014-4cbe-8c05-d8b9368aa087 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-70335664-387b-4c26-8f39-52961254511d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_third_party_admin_cannot_modify_port [0.266709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/ports/e4fccec1-666a-4dcc-904a-5653ba96975b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-dc061f75-40e0-4fb9-88ef-a3f0d2312696
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port e4fccec1-666a-4dcc-904a-5653ba96975b could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.115967s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/491f7caf-8a8a-449a-8b61-430898df9edc GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9b72d22d-af9a-41dd-9fdf-b9a037ee2926
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_ports_get_service_project_disabled [0.199242s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6122ba99-f95e-4611-bc2e-315b8fbc1739
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_283_chassis_post_admin [0.145055s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-a15960e0-78e1-470c-b9ae-154a7a632d83
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_366_owner_admin_can_delete_port [0.206328s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-ffe0f7f4-d188-4539-8ef2-7436e04044ed
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_ports_get_member [0.177244s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9fed2542-c0d0-4991-8126-c13cee6c2cea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_367_owner_manager_can_delete_port [0.177473s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-f2e74616-9149-448f-8a18-a17a124561a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_member [0.213012s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-321ff24b-21c8-4cb2-89a5-4907512964ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_ports_get_reader [0.237384s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e6e70fb3-b412-4400-b465-b5af1444b0e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.889484s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_368_owner_service_can_delete_port [0.175157s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-415f1649-3cb5-4d3e-9d7b-b9b06b62b4e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_post_observer [0.215991s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e7c454e4-25be-4a6a-ac0a-0b1318070bef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.135599s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_369_owner_member_cannot_delete_port [0.179081s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c02ccd53-87dd-4858-bf86-e983592cc403
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_ports_post_admin [0.267795s] ... 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-8b5f2902-bf02-444b-ab80-8ac5fd55656d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.143229s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_370_lessee_admin_cannot_delete_port [0.173805s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/b8834c70-3e6c-4853-83b7-7ffade35d1e0 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bbfac246-1dd9-4cb4-83d3-e4ea910e4cfb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_admin [0.244984s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-fdb40236-82e9-4bb3-8bf8-e61155e9aff2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json [0.172055s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_371_lessee_manager_cannot_delete_port [0.157220s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/357fa9fb-c396-42e8-838e-ab07862b1d73 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6a6f9e3a-6a04-48c1-9354-8f049916d7e2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.165605s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_287_chassis_get_member [0.259666s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-843d4635-829c-401c-827b-3a41cb19a69d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.068274s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_member_cannot_delete_port [0.186348s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/15c8e549-7456-484d-b522-4ff5f8002376 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-56d260f5-a981-4fe3-90cb-dfdbc032b398
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.063809s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.032087s] ... ok
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.072224s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_288_chassis_get_observer [0.262364s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-0d65858b-7c4f-4d93-afc3-bcdfef06d20b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.051906s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_third_party_admin_cannot_delete_port [0.200271s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/d1846857-2ad9-4531-8225-10c845873085 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3890c86a-998f-46d8-8629-515e5282f437
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port d1846857-2ad9-4531-8225-10c845873085 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.036385s] ... ok
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.028585s] ... ok
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.045837s] ... ok
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.076332s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_374_owner_reader_can_get_node_ports [0.185078s] ... 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-d636cc05-9f8d-4d3d-8a45-4e91b725fb6b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.062736s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_admin [0.286791s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6e657e13-05c9-48c2-9f1a-dec708298170
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.067223s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_ports_post_member [1.051708s] ... 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-62aa0899-1c20-42f1-970d-279a5b53facb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_375_owner_service_can_get_node_ports [0.191640s] ... 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-d91f69cf-e9a6-40bc-b234-d0f916b63ade
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_member [0.151717s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-8e65f956-c21b-4f68-924b-81fcadb3ee82
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd [0.137753s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_169_ports_post_reader [0.171591s] ... 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-19b5d27c-c359-4ad3-9056-af70b2e61c3e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_disk [0.143004s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_376_lessee_reader_can_get_node_port [0.287269s] ... 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-d9cd72a2-4ac1-4884-9d90-de76c76dca52
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "6df99411-3dab-4552-93e4-8b743e185927", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/6df99411-3dab-4552-93e4-8b743e185927", "rel": "self"}, {"href": "http://localhost/ports/6df99411-3dab-4552-93e4-8b743e185927", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_291_chassis_detail_get_observer [0.255709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-a379973c-a95a-4d2f-995a-f1ec348a45f6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_ports_detail_get_admin [0.186457s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1fb3b9ad-936c-4336-9f22-5eaaecec5abb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:52:08.713718+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.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_floppy [0.126502s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_377_third_party_admin_cannot_get_ports [0.182040s] ... 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-dc601cbd-cc3c-46f1-b0c9-db519a0602d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.163117s] ... 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-5328bd8e-bcd8-4720-bf98-83b8a793ff11
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_persistent [0.117418s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_171_ports_detail_get_member [0.195043s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-13c526d5-b340-44a3-8aac-81715ee181ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:52:08.912883+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.drivers.modules.drac.test_boot.DracBootTestCase.test_validate_correct_vendor [0.108748s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_member [0.188876s] ... 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-1b858a37-ec47-4891-979f-2ed5c42d49e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_378_service_cannot_get_ports [0.211134s] ... 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-89961aef-b3d2-4420-817b-fa648260c366
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces [0.097885s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_ports_detail_get_reader [0.203388s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d9605dfb-47fb-4f28-a16b-38cc7124273e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:52:09.134421+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.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces [0.093551s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.149678s] ... 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-72e0b849-7a09-42ff-9a85-a3b6b2603c9e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode [0.080858s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_379_owner_reader_can_get_ports_by_portgroup [0.197179s] ... 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-5c301448-555b-4411-a48e-9540af3a08db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode [0.040359s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_ports_port_id_get_admin [0.180014s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-55765080-9d3e-4d97-9c6f-fff93b0413d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:52:09.304877+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.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode [0.049300s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties [0.043499s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.210285s] ... 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-62fc10e1-ae5a-4e78-8c1a-526ea76fecff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac [0.052692s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task [0.071387s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_380_owner_service_cam_get_ports_by_portgroup [0.281886s] ... 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-cf1bd41d-23de-4e14-8d44-89312a349857
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_ports_port_id_get_member [0.231817s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a996020d-0263-4325-9b5e-7c68fb802e61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:52:09.482110+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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed [0.070648s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing [0.061671s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.235411s] ... 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-9aa0f3c1-2fee-4989-94c7-4cf6513958a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed [0.082638s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_381_lessee_reader_can_get_ports_by_portgroup [0.273914s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/1e0b5a0e-aaf7-40eb-920b-055f87ebdbfb/ports WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1a84783f-09c3-4d9b-8c9b-433dd0e5f7b7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_ports_port_id_get_reader [0.281922s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eebad68b-6a04-44a3-a5db-33e81bb50360
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:52:09.765096+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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 [0.106874s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.202689s] ... 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-346d9d18-bb1d-4179-a7dc-aa117c0db46e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing [0.075759s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_382_third_party_admin_cannot_get_ports_by_portgroup [0.167324s] ... 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-53f517ab-0995-45a7-bef2-e69120e91e29
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export [0.083236s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.157036s] ... 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-8dba3e87-dfeb-49d0-8cec-4e072eea705f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed [0.081060s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.138111s] ... 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-ae341558-60d5-4daa-b7bd-e27b47d7bb15
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_383_service_cannot_get_ports_by_portgroup [0.159398s] ... 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-213e2ab6-71a3-404e-879f-d98b200b7adf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac [0.082321s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_ports_port_id_patch_admin [0.361371s] ... 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-2fce07a8-90af-46a0-9c0a-6faec051e43c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status [0.043802s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url [0.048644s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.135466s] ... 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-2812e035-cfb5-4e28-ab34-53e13e631527
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_384_owner_reader_can_list_volume_connectors [0.164120s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a1aab414-1e08-407d-a7d4-53b0914db00a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "a7732a06-458a-4564-a4d9-d9ca476effa6", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a7732a06-458a-4564-a4d9-d9ca476effa6", "rel": "self"}, {"href": "http://localhost/volume/connectors/a7732a06-458a-4564-a4d9-d9ca476effa6", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked [0.085286s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound [0.091004s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_301_node_history_get_admin [0.162125s] ... 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-64a8d0e6-284e-40c3-a81d-a289ea4051dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_385_lessee_reader_can_list_volume_connectors [0.171899s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7637b5ab-8bce-46a5-8c20-59bab4d1c765
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "0bb36cfe-f83c-4b0f-ac43-0d20f62ba5ee", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0bb36cfe-f83c-4b0f-ac43-0d20f62ba5ee", "rel": "self"}, {"href": "http://localhost/volume/connectors/0bb36cfe-f83c-4b0f-ac43-0d20f62ba5ee", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_ports_port_id_patch_member [0.310754s] ... 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-c487ea2d-03d0-489f-bddb-c788b74612d1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean [0.096681s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy [0.075733s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_302_node_history_get_member [0.156937s] ... 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-ca42a444-14ef-437e-9eca-671cce55a582
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_386_third_party_admin_cannot_get_connector_list [0.148605s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e270a62-d76a-4a21-9168-2f03762cebf1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": []}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean [0.059125s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_178_ports_port_id_patch_reader [0.213447s] ... 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-1afd8a06-544a-4591-824d-a41e421146bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy [0.059073s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold [0.042894s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_observer [0.175758s] ... 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-f9599635-f464-458f-b28f-657238219a9c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty [0.036755s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_387_owner_admin_can_post_volume_connector [0.200048s] ... 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/bfd5ff2e-74da-4076-87c9-eed88e79d54b
Openstack-Request-Id: req-a6b8f0f8-8753-4e6a-a5d3-653d5a0cace5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "bfd5ff2e-74da-4076-87c9-eed88e79d54b", "created_at": "2025-06-04T21:52:10.904818+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/bfd5ff2e-74da-4076-87c9-eed88e79d54b", "rel": "self"}, {"href": "http://localhost/volume/connectors/bfd5ff2e-74da-4076-87c9-eed88e79d54b", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing [0.043038s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing [0.042715s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported [0.030075s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_admin [0.160408s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4c2715d2-f86f-4d22-961d-f06e0f6280c3 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2cb04b3f-da36-4181-ae94-29df77b040f7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing [0.032227s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_ports_port_id_delete_admin [0.258688s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-81e9257a-a75b-466d-b43c-482ebc5b76a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue [0.088135s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step [0.069742s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_member [0.259330s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/cd7febb1-3b14-473a-b63f-cbc7801cd1a8 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-778e3d6a-44d6-436b-9224-669b917e9e0a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_ports_port_id_delete_member [0.286672s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0bb5a43f-8e9e-4795-80bc-49838b4ba611
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_owner_manager_can_post_volume_connector [0.457805s] ... 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/4b5827b9-d151-4053-b155-3027f1587262
Openstack-Request-Id: req-c06e54d3-a0b9-4ab3-a911-b4c8ed7a5936
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "4b5827b9-d151-4053-b155-3027f1587262", "created_at": "2025-06-04T21:52:11.369104+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/4b5827b9-d151-4053-b155-3027f1587262", "rel": "self"}, {"href": "http://localhost/volume/connectors/4b5827b9-d151-4053-b155-3027f1587262", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_owner_service_can_post_volume_connector [0.094768s] ... 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/8fb8be83-0ccf-489a-a8e4-2029ea0550e5
Openstack-Request-Id: req-912818fd-a9ec-43ed-896b-add26bfe79ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "8fb8be83-0ccf-489a-a8e4-2029ea0550e5", "created_at": "2025-06-04T21:52:11.462024+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/8fb8be83-0ccf-489a-a8e4-2029ea0550e5", "rel": "self"}, {"href": "http://localhost/volume/connectors/8fb8be83-0ccf-489a-a8e4-2029ea0550e5", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_306_node_history_get_entry_observer [0.231433s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e235c315-7ecc-49e6-a58d-1f4944fc1632 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b34a0a27-1ab8-4df3-bd74-635a661e3964
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_ports_port_id_delete_reader [0.228551s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-54680295-ab69-4381-ae1f-d079a1a5c6ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_admin_cannot_post_volume_connector [0.164899s] ... 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-34590fd5-5997-405d-9e26-19d9a0c01fd9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step [0.439221s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_001_values ... SKIPPED: These are fake reference values for YAML templating
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_export_failed [0.057168s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing [0.039254s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_nodes_ports_get_admin [0.183461s] ... 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-13614ad8-0299-409f-802f-39c77a0b9117
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success [0.052421s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found [0.040317s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema [0.047988s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin [0.225080s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0d83edea-516e-48e1-baaf-8eec38f07910
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing [0.029732s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_391_lessee_manager_cannot_post_volume_connector [0.277430s] ... 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-e63913bc-7bcb-4da5-ac67-286fa7bb0b2f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_nodes_ports_get_member [0.176341s] ... 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-7a927238-bedd-4a5e-9c42-a3b4ba1f1f4f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success [0.043922s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success [0.070169s] ... ok
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state [0.048167s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_184_nodes_ports_get_reader [0.178808s] ... 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-79694e96-3e1e-4457-b6c9-574df677d461
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member [0.219344s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a01dbcc1-fdc9-4b2d-8bfb-c7d74cb7e5fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac [0.082997s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_392_third_party_admin_cannot_post_volume_connector [0.287658s] ... 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-8205e5da-a523-468b-a91d-ae609977902c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step [0.069750s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_185_nodes_ports_detail_get_admin [0.179518s] ... 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-1977fdb4-af7b-4f8b-87a8-cd687639d537
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:52:12.207782+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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step [0.104922s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_004_nodes_post_observer [0.217790s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-bad65745-b49d-4f20-92ee-11b0b4373f7a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.068444s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.054555s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_393_service_admin_cannot_post_volume_connector [0.288137s] ... 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-3b6170bd-3946-401c-a59d-57232424b55f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_nodes_ports_detail_get_member [0.207745s] ... 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-efb33612-13ba-4852-9ae3-7703dbefd966
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:52:12.386285+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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.063830s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin [0.177832s] ... 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-fa8920a0-e6f6-470e-8285-a124c9174f06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.064280s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.069003s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_nodes_ports_detail_get_reader [0.206258s] ... 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-f57ba944-6899-405e-8ff9-30e72c996360
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-06-04T21:52:12.602607+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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.094497s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_owner_reader_can_get_volume_connector [0.283873s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/fba8a0c4-913b-4edf-b308-b21a23eea210 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-474a2150-f7a2-4f9b-a608-622d5d086539
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "fba8a0c4-913b-4edf-b308-b21a23eea210", "created_at": "2025-06-04T21:52:12.646474+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/fba8a0c4-913b-4edf-b308-b21a23eea210", "rel": "self"}, {"href": "http://localhost/volume/connectors/fba8a0c4-913b-4edf-b308-b21a23eea210", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.074246s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.070092s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_portgroups_ports_get_admin [0.213042s] ... 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-79a0bbf0-04f6-4337-9a1b-c0954912ac1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.066941s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_portgroups_ports_get_member [0.168070s] ... 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-49babb47-b715-4b8b-a00f-ec447ce3f040
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_lessee_reader_can_get_volume_connector [0.301204s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/5c28a8fb-9faf-45c4-a25e-a5b25207c0c8 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-674e1412-4d10-4975-8d57-b9f1a4c13a06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "5c28a8fb-9faf-45c4-a25e-a5b25207c0c8", "created_at": "2025-06-04T21:52:12.953257+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/5c28a8fb-9faf-45c4-a25e-a5b25207c0c8", "rel": "self"}, {"href": "http://localhost/volume/connectors/5c28a8fb-9faf-45c4-a25e-a5b25207c0c8", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.146884s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member [0.685351s] ... 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-c6af1909-80a4-4afc-a4b6-4df6193c7f35
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_portgroups_ports_get_reader [0.187364s] ... 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-b0b2bb6c-c123-4797-af7d-a57e42188912
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.217734s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_396_third_party_admin_cannot_get_volume_connector [0.278150s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/970b87ae-5a1d-44c9-8e2e-1ffd50a5e8fd WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2044bdc2-71dc-430a-b2a1-58153cc2a632
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 970b87ae-5a1d-44c9-8e2e-1ffd50a5e8fd could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer [0.180416s] ... 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-b7cb9979-09fc-42a1-9f9d-cf139ba4396c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_portgroups_ports_detail_get_admin [0.223933s] ... 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-63b08478-eb61-47ab-a244-cd1bda9a7b82
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.230134s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_397_lessee_member_cannot_patch_volume_connectors_extra [0.213647s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/f2a11f24-0396-4c69-bde7-20cd902ebfb6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-066cbeda-4f30-4a13-aa64-c387af4d59cf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin [0.234953s] ... 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-a1c73b04-fd71-42bd-965b-350343c4ed6f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.185046s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_portgroups_ports_detail_get_member [0.289093s] ... 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-6f64e08f-dd65-4333-a552-0ae820f3b23a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_398_owner_admin_can_patch_volume_connectors [0.214767s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/4bb1c329-5282-404a-b289-b33a25159d6d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-6d0d47d2-5828-4b80-a6fa-33af1697b797
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin [0.243072s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2bd91509-ee19-4be0-86f1-8bbed5ef14af
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.229543s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_portgroups_ports_detail_get_reader [0.319171s] ... 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-7c0d63c9-b082-4341-846c-86841f3493de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"ports": []}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_399_owner_manager_can_patch_volume_connectors [0.315692s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/0ca5b40b-d33d-4550-b077-303f24fef8ee WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-4fdfd6cb-c6d0-46b5-a664-876564750978
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin [0.251095s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1e8a5e52-cb94-4461-acef-00a6f69befda
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"nodes": []}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.205181s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin [0.195180s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e286f3bb-b5c5-4a30-8f6e-853e718b2e30
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.145939s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_400_lessee_admin_cannot_patch_volume_connectors [0.222424s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/f2072c14-e896-418e-8396-e6de190588ad WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-ec9eb4fa-1905-4181-95eb-8372ddebad33
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_get_admin [0.240213s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-99f08e8f-09c4-4746-9d13-5698b927621a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.147618s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member [0.195723s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2aecedf3-c1d8-4c8c-ae0a-e100978a6534
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_get_member [0.227002s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b1467f25-8933-48bf-9805-245eb42e29f8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_401_lessee_manager_can_patch_volume_connectors [0.241307s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/a83af7fa-6938-449a-b35a-410e91fed984 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-17f145f8-6c3a-407c-b533-af0e985567b4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.153570s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer [0.180065s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cd19c6e6-6f59-4484-8ef2-3029c34ce573
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.144324s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_402_owner_member_can_patch_volume_connectors [0.219724s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/710ec12b-9237-4c62-acf9-71620bbc3761 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-d0182e22-de63-44f1-b955-d5f7b089c1dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_get_reader [0.235804s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ffcef7cc-563d-493a-b881-085dcd7bd0f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin [0.217027s] ... 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-ff3c67f9-34cc-44f2-9c13-7779679e747e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.196651s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_get_service [0.226926s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-80ba9b49-0fa5-424d-be60-dbd28b42c51c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member [0.145821s] ... 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-7c34a17a-28cb-42ce-b802-0d80785845bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_403_lessee_member_cannot_patch_volume_connectors [0.277191s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/8d4f9ed9-fe6d-436f-b6e7-418f529e95a2 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2dc0e8d7-0463-4f93-8465-064dd4cc472d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer [0.079789s] ... 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-c76dfd8d-5d14-470a-8991-889c6889c263
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.190514s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_volume_get_service_project [0.240776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-464fea07-98af-4573-9377-f38317a59055
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin [0.129430s] ... 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-18b96dd7-13b4-4249-8395-702d4aa7bda1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_404_third_party_admin_cannot_patch_volume_connectors [0.273843s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/ccee4f06-4169-4d2f-a1f1-79928defab00 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e6a26100-5938-406a-9da8-fcf18884f34e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ccee4f06-4169-4d2f-a1f1-79928defab00 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member [0.107194s] ... 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-a27e0263-ec09-42e6-9c62-950b10d0b08c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.209179s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer [0.138607s] ... 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-49acb720-e681-4169-b5ff-21ffd92bd7b7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_volume_connectors_get_admin [0.262460s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-12219ffa-42e9-4d1e-9b1b-a4de1f06d27d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "5ac90338-530d-4bfa-be42-6fd3f8fae2af", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/5ac90338-530d-4bfa-be42-6fd3f8fae2af", "rel": "self"}, {"href": "http://localhost/volume/connectors/5ac90338-530d-4bfa-be42-6fd3f8fae2af", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.185064s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_405_owner_admin_can_delete_volume_connectors [0.261068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/0311367e-2f8a-4688-9fcb-0f4c6ea4cf3f GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-ae29d980-3ebe-4739-9749-21c8fa36df15
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin [0.108545s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-038e18ea-58f7-468c-ac77-43fb9af9741e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member [0.102636s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e787faee-46d4-4986-8fad-e037a68794e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.155360s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_volume_connectors_get_member [0.261120s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c862b76d-cff6-4692-b64f-f686f619bac4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "c3216411-ab66-44f8-a092-ee456dde9745", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c3216411-ab66-44f8-a092-ee456dde9745", "rel": "self"}, {"href": "http://localhost/volume/connectors/c3216411-ab66-44f8-a092-ee456dde9745", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer [0.105163s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-97c259bd-5659-43a3-ad30-65c6f720b785
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_manager_can_delete_volume_connectors [0.295970s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/2285008c-0544-4b42-b6a1-4b3f07ee7b04 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-7b1d4db1-67f7-4a07-83d9-819083070053
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin [0.082070s] ... 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-119cc310-7170-477b-aa81-c0b410702047
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.170657s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member [0.137137s] ... 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-610d34b8-7f76-4578-81a3-98d10630036b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_volume_connectors_get_reader [0.280996s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-80fceb08-7cc1-4b82-adee-a023eb016d0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "5f49c5ad-a0a5-478e-bf6b-61c33defdf2e", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/5f49c5ad-a0a5-478e-bf6b-61c33defdf2e", "rel": "self"}, {"href": "http://localhost/volume/connectors/5f49c5ad-a0a5-478e-bf6b-61c33defdf2e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.136724s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_407_owner_service_can_delete_volume_connectors [0.290738s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/ffbec153-5340-4460-b3b5-5574e95cebe1 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-3e6cb6a9-3beb-414c-b4b0-b339e26793bc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.128899s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer [0.200978s] ... 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-b19c2572-5db2-4702-ac9a-4773983bdf3f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.141988s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin [0.136014s] ... 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-3cb5d2cf-c98b-41c1-88c4-1e27f0fd62cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member [0.075794s] ... 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-cca24244-51a6-4508-a844-bc0da579ee38
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.143147s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_408_lessee_admin_can_delete_volume_connectors [0.312728s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/9170fd8d-2e1d-45bd-a46b-28c787052620 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-13bc1432-ff16-46dc-bb49-1ecd98780350
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer [0.116139s] ... 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-c8714811-3162-432e-bb84-52c05f7bc32a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.109436s] ... ok
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.038075s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin [0.092799s] ... 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-8397d599-db85-4d05-8dd5-7fff260b1e6d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate [0.063764s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member [0.080107s] ... 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-95b10c25-9f40-426f-8df6-a6a711efb652
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_lessee_manager_can_delete_volume_connectors [0.289309s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/04ef21e6-43e5-449e-9604-3cba8d9d0e32 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-3f233d8b-8929-43f6-b38e-2a658bd6fecb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer [0.121666s] ... 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-76784f06-736a-4260-8897-f34d5049d25b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_volume_connectors_get_service [0.872982s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-587e76c5-ad8a-4a7b-8396-3c69d1724f25
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "9a757386-ff05-49e3-920f-f1818162ea16", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9a757386-ff05-49e3-920f-f1818162ea16", "rel": "self"}, {"href": "http://localhost/volume/connectors/9a757386-ff05-49e3-920f-f1818162ea16", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin [0.091952s] ... 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-3262423b-a3ea-46ee-8714-66f21ad69cd3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_third_party_admin_cannot_delete_volume_connector [0.183775s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/bb82e5d6-4879-4382-b8cb-9338e876ea7e GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-01915118-df76-42be-9e0e-ae8dba2b9ff5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector bb82e5d6-4879-4382-b8cb-9338e876ea7e could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_volume_connectors_get_service_project [0.164454s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e263102-24ed-4005-ad76-30788d4ed767
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "3b4d23be-f6b2-4c68-aa2b-045b7955bacb", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/3b4d23be-f6b2-4c68-aa2b-045b7955bacb", "rel": "self"}, {"href": "http://localhost/volume/connectors/3b4d23be-f6b2-4c68-aa2b-045b7955bacb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member [0.130103s] ... 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-fdc702ba-c67b-40df-b9bc-c0fa4084f5d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_service_cannot_delete_volume_connector [0.182516s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/25398bfb-c4f0-41a0-8210-b1fb1468020a GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d05e978e-2acd-44de-8e9c-47afbf02776e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 25398bfb-c4f0-41a0-8210-b1fb1468020a could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer [0.117767s] ... 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-2ac1c819-1354-4ae3-9628-c06be1a91515
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_volume_connectors_get_service_project_disable [0.156902s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-31590b76-f554-4074-8cb4-d892e116258d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": []}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.614608s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_412_owner_reader_can_get_targets [0.187519s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8d3cc1f2-b147-4706-8887-50d61782afe2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "5039855b-c630-43d1-95a2-d2f93d3ccb51", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/5039855b-c630-43d1-95a2-d2f93d3ccb51", "rel": "self"}, {"href": "http://localhost/volume/targets/5039855b-c630-43d1-95a2-d2f93d3ccb51", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin [0.139184s] ... 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-343307ea-29e5-4614-b0c9-79bed8a2ecbc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_volume_connectors_post_admin [0.192069s] ... 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/56fd93fa-4a6c-4af5-a415-4adc1625b593
Openstack-Request-Id: req-637b0871-56fd-4e2e-882d-7f6781a73969
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "56fd93fa-4a6c-4af5-a415-4adc1625b593", "created_at": "2025-06-04T21:52:17.500806+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/56fd93fa-4a6c-4af5-a415-4adc1625b593", "rel": "self"}, {"href": "http://localhost/volume/connectors/56fd93fa-4a6c-4af5-a415-4adc1625b593", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.131876s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member [0.161615s] ... 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-8cc7cece-3aab-4728-bc09-580b5af9c667
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_lesse_reader_can_get_targets [0.184502s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-14d543ae-cc38-4095-a136-2fe7976ed02b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "82784e7e-5655-4450-bcfe-88e0b11ffb8e", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/82784e7e-5655-4450-bcfe-88e0b11ffb8e", "rel": "self"}, {"href": "http://localhost/volume/targets/82784e7e-5655-4450-bcfe-88e0b11ffb8e", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.115513s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer [0.089339s] ... 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-cf4fdcfb-fa9f-44f8-9fe2-3761f5683807
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_volume_connectors_post_member [0.199955s] ... 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/f2d33919-4dc8-4213-a8bc-7aa35764e5db
Openstack-Request-Id: req-49d82556-cb40-4aba-82db-d6cf9db3f5c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f2d33919-4dc8-4213-a8bc-7aa35764e5db", "created_at": "2025-06-04T21:52:17.701078+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/f2d33919-4dc8-4213-a8bc-7aa35764e5db", "rel": "self"}, {"href": "http://localhost/volume/connectors/f2d33919-4dc8-4213-a8bc-7aa35764e5db", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin [0.095524s] ... 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-87de7cee-caad-40cb-a4d9-8619239883c2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance [0.150161s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member [0.083606s] ... 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-1a41256f-f147-46ae-b92d-2d23ff94f25b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_414_third_party_admin_cannot_get_target_list [0.261288s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-98285027-55a3-4bc7-a797-8f3c220184a6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": []}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_volume_connectors_post_reader [0.182809s] ... 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-7f9370a8-bbe6-4bdb-a17c-39c9ca20bfec
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer [0.071667s] ... 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-f190fde4-8a7e-45c8-b8cc-5a6e8f8b214b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.172947s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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.125817s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_415_owner_reader_can_get_volume_target [0.214691s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/20ad5fc2-85bc-43bd-9988-95226c8a971d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-607d83a0-1348-4245-8cbc-0672d0b6d6bc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "20ad5fc2-85bc-43bd-9988-95226c8a971d", "created_at": "2025-06-04T21:52:17.998170+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/20ad5fc2-85bc-43bd-9988-95226c8a971d", "rel": "self"}, {"href": "http://localhost/volume/targets/20ad5fc2-85bc-43bd-9988-95226c8a971d", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_volume_connectors_post_service [0.206226s] ... 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/caa3dc82-a0ba-457c-b09c-110a88c8872b
Openstack-Request-Id: req-f827818a-a55e-4697-b5ce-21367f7c919a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "caa3dc82-a0ba-457c-b09c-110a88c8872b", "created_at": "2025-06-04T21:52:18.081159+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/caa3dc82-a0ba-457c-b09c-110a88c8872b", "rel": "self"}, {"href": "http://localhost/volume/connectors/caa3dc82-a0ba-457c-b09c-110a88c8872b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.184329s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin [0.422355s] ... 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-57505d58-7c7b-4f18-81fe-5e308bc98b56
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_416_lessee_reader_can_get_volume_target [0.312925s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/c6ceb6dd-ba13-42bf-a622-aea111575647 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ca9b2d59-39ec-4abf-8c38-06626c14b515
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c6ceb6dd-ba13-42bf-a622-aea111575647", "created_at": "2025-06-04T21:52:18.290096+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/c6ceb6dd-ba13-42bf-a622-aea111575647", "rel": "self"}, {"href": "http://localhost/volume/targets/c6ceb6dd-ba13-42bf-a622-aea111575647", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_volume_connectors_post_service_project [0.323349s] ... 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/f869c3f0-e4db-47b4-b721-53f11d7bd907
Openstack-Request-Id: req-c16a7557-a14c-48e0-a7aa-0e8a221bdef8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f869c3f0-e4db-47b4-b721-53f11d7bd907", "created_at": "2025-06-04T21:52:18.419183+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/f869c3f0-e4db-47b4-b721-53f11d7bd907", "rel": "self"}, {"href": "http://localhost/volume/connectors/f869c3f0-e4db-47b4-b721-53f11d7bd907", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member [0.086525s] ... 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-07710b46-6b8f-4a22-95e6-b4b51141c975
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.167190s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer [0.083310s] ... 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-911cdac5-2db7-457a-a99c-729bd51d66a4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin [0.084246s] ... 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-3764e853-40b0-497d-b51c-c95ab831bd1e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.192098s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_417_third_party_admin_cannot_get_volume_target [0.265000s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/f99bc161-2d8a-4f30-8e65-b8aaad7d61e4 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b994af7e-90e6-40e3-a5d6-3489c40576e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target f99bc161-2d8a-4f30-8e65-b8aaad7d61e4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_volume_volume_connector_id_get_admin [0.280827s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/96bd6da1-c372-4504-8936-228eafeaf8f5 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4f6107e1-57db-456d-bfd0-c7aa2b16788a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "96bd6da1-c372-4504-8936-228eafeaf8f5", "created_at": "2025-06-04T21:52:18.595931+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/96bd6da1-c372-4504-8936-228eafeaf8f5", "rel": "self"}, {"href": "http://localhost/volume/connectors/96bd6da1-c372-4504-8936-228eafeaf8f5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member [0.115818s] ... 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-0531288d-5848-4c78-a7ea-9c7cf14f2621
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer [0.083546s] ... 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-cc3208fa-5e7a-4a9e-9d21-d1f0c07bd832
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.172394s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin [0.175445s] ... 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-8548e4af-0931-4d37-9768-6ff9a95554b1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_418_owner_admin_create_volume_target [0.317739s] ... 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/903b97ad-8708-431b-b4fc-96aefe0e5c08
Openstack-Request-Id: req-4867e56d-7f91-44f0-b6da-f310c532f666
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "903b97ad-8708-431b-b4fc-96aefe0e5c08", "created_at": "2025-06-04T21:52:18.982950+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/903b97ad-8708-431b-b4fc-96aefe0e5c08", "rel": "self"}, {"href": "http://localhost/volume/targets/903b97ad-8708-431b-b4fc-96aefe0e5c08", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_volume_volume_connector_id_get_member [0.298601s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/f68feb15-2234-4046-aa8e-a48830ad0a6a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-823d5846-9064-4a4e-9c95-db8d63d88327
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f68feb15-2234-4046-aa8e-a48830ad0a6a", "created_at": "2025-06-04T21:52:18.891361+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f68feb15-2234-4046-aa8e-a48830ad0a6a", "rel": "self"}, {"href": "http://localhost/volume/connectors/f68feb15-2234-4046-aa8e-a48830ad0a6a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.199808s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member [0.103716s] ... 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-3c3419c1-5973-4cbb-847c-249364597600
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.179227s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_419_owner_service_create_volume_target [0.285105s] ... 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/a6c5ee44-8a9c-40dc-a4b9-f92b57ffb353
Openstack-Request-Id: req-753b368e-18db-42ff-aacf-8770679e9ae0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a6c5ee44-8a9c-40dc-a4b9-f92b57ffb353", "created_at": "2025-06-04T21:52:19.284694+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a6c5ee44-8a9c-40dc-a4b9-f92b57ffb353", "rel": "self"}, {"href": "http://localhost/volume/targets/a6c5ee44-8a9c-40dc-a4b9-f92b57ffb353", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_volume_volume_connector_id_get_reader [0.272878s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/1c80af21-3461-43a4-8ef9-581bf0805f10 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d7057e04-13ad-499d-9eba-72853648421c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1c80af21-3461-43a4-8ef9-581bf0805f10", "created_at": "2025-06-04T21:52:19.178827+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1c80af21-3461-43a4-8ef9-581bf0805f10", "rel": "self"}, {"href": "http://localhost/volume/connectors/1c80af21-3461-43a4-8ef9-581bf0805f10", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer [0.195264s] ... 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-652365ec-bab3-4db1-bfbb-62ba3a009210
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.165536s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin [0.226192s] ... 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-9cc48994-bfd2-4a94-9d2b-ed02e6328741
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.185763s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_420_owner_manager_create_volume_target [0.307290s] ... 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/f8d40671-bb1b-44cc-94de-ae0aec820ca1
Openstack-Request-Id: req-714c5fab-264b-4ec8-8df0-c02465e5ed02
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f8d40671-bb1b-44cc-94de-ae0aec820ca1", "created_at": "2025-06-04T21:52:19.592474+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f8d40671-bb1b-44cc-94de-ae0aec820ca1", "rel": "self"}, {"href": "http://localhost/volume/targets/f8d40671-bb1b-44cc-94de-ae0aec820ca1", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_volume_volume_connector_id_patch_admin [0.317896s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/915e3d91-0c3d-47b7-8848-98969a71f141 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-b7efed6f-11f9-4be2-b813-4d0742976844
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member [0.195071s] ... 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-adb7ba77-b420-4811-a22a-4fbf3f10944b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.203253s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer [0.097949s] ... 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-4799e85a-c284-414e-8793-cbb31baf3a89
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin [0.082922s] ... 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-d0e6af79-25f8-425c-90d9-0da9413001ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_421_lessee_admin_create_volume_target [0.304110s] ... 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/3d4b8f1a-fe90-4748-b5e3-948f1b73b211
Openstack-Request-Id: req-326864aa-45cc-48f8-939d-fe535abc7ef1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "3d4b8f1a-fe90-4748-b5e3-948f1b73b211", "created_at": "2025-06-04T21:52:19.894923+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/3d4b8f1a-fe90-4748-b5e3-948f1b73b211", "rel": "self"}, {"href": "http://localhost/volume/targets/3d4b8f1a-fe90-4748-b5e3-948f1b73b211", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_volume_volume_connector_id_patch_member [0.307986s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/4604c1c0-7bc7-4881-82f7-e315399cbf83 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-2ea12b6c-25d2-48cf-a52f-3c0027d3be29
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.191069s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member [0.130481s] ... 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-433ccc8d-8586-4196-99a6-5e783632bb6b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_volume_volume_connector_id_patch_reader [0.260513s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/d2d79c39-826d-447b-951b-870ca0bd5026 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-66871739-ec20-44c3-8ff7-f0431ffdc9d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_422_lessee_manager_create_volume_target [0.288854s] ... 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/f0aea8b8-baa9-46c2-9125-ab7bb92a2441
Openstack-Request-Id: req-639766e6-2fc5-45c7-9b98-11c3db956fb1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "f0aea8b8-baa9-46c2-9125-ab7bb92a2441", "created_at": "2025-06-04T21:52:20.183565+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f0aea8b8-baa9-46c2-9125-ab7bb92a2441", "rel": "self"}, {"href": "http://localhost/volume/targets/f0aea8b8-baa9-46c2-9125-ab7bb92a2441", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.208585s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer [0.200167s] ... 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-7f6a1b03-1998-4154-8e1c-322e6147650d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin [0.100161s] ... 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-c91315ea-8528-414a-ae49-f8674017af52
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.199355s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member [0.097972s] ... 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-2a09ce4c-9cce-41fa-b9b3-e0c21dd7dbba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_volume_volume_connector_id_patch_service [0.310940s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/78b60157-f175-431b-a41a-a2d0384add12 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-012785cc-3ec2-468a-a3d5-249b0ca60615
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer [0.160636s] ... 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-93ae2ff7-cc23-4ffc-8987-432d185f765f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.206890s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin [0.087409s] ... 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-1d4bdfe1-9f2f-4cf7-b1a4-1dbeba862ba1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_volume_volume_connector_id_delete_admin [0.276254s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/0c7799fa-f670-41f3-bfaf-ad37a1760ac1 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-834c6db2-8b39-4f8e-b4f1-0fdd02db4159
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member [0.106951s] ... 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-539345bb-cbcd-4550-801c-aa30b259b1d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.201406s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer [0.094016s] ... 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-fbb9c48b-777b-483b-bae5-7753e559a18e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin [0.111479s] ... 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-2e39151c-9fb9-4270-b7de-3488e598ff06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_volume_volume_connector_id_delete_member [0.252788s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/ce3f8486-f254-473d-83c5-660475bf29a3 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-a4c19dd2-b7aa-47cb-a568-9ae3d611c21c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.204631s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member [0.091011s] ... 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-b801d065-bed5-42c6-bfb2-5a3f6d7c1d0e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.125385s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACScoped.test_scoped_canary_064_nodes_states_console_get_observer [0.094600s] ... 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-e4adc78a-db73-4620-9094-0019eb6006d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_third_party_admin_cannot_create_volume_target [1.006764s] ... 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-fae68bde-0211-4f5f-978d-7a7b8649bd59
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_admin [0.088990s] ... 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-97eec357-9dfb-4375-9b0b-d47341f8d6ad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_volume_volume_connector_id_delete_reader [0.255896s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/be63bf5a-fcd6-4a1d-acd2-9d14fb471c00 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-db498812-b49a-4afb-ad8b-6db6e1a1d51e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.155749s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_member [0.089147s] ... 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-d89dd31e-e7eb-4787-81cb-878275bd9061
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_states_console_put_observer [0.089921s] ... 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-e92bc143-3518-4991-8e4c-0d5788ca2a5e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_424_owner_member_can_patch_volume_target [0.286394s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/ca3508d8-23d6-45c4-9622-c1bb4d888ba1 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-584ef30f-4b88-43ce-8f5e-2ccb5170a8fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.189363s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_volume_volume_connector_id_delete_service [0.258176s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/adecbb68-6132-4eaf-8f81-0f041e535311 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-531f286f-d260-4a2a-9964-ffa69607e844
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_admin [0.104116s] ... 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-3e27d3e6-24ba-41f0-867b-bce28501233d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_member [0.143159s] ... 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-5bd77fac-2cbe-4de4-a3a6-233712200524
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_no_timeout [0.218218s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_methods_get_observer [0.114782s] ... 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-5bb20894-4aae-48e4-9039-5c5059cb9dc2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_425_owner_service_can_patch_volume_target [0.347423s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/66958d72-6ca1-43fc-96c7-50dc3cc4d29a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-9a180bd6-569a-4197-ada3-0870382aacfb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_volume_targets_get_admin [0.287178s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8cf49bc3-4d89-409c-aad7-0c65aeb6033d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "974e5197-eb15-4f55-bfb6-606059db4449", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/974e5197-eb15-4f55-bfb6-606059db4449", "rel": "self"}, {"href": "http://localhost/volume/targets/974e5197-eb15-4f55-bfb6-606059db4449", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_admin [0.084617s] ... 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-6fdc560e-e9e7-4dda-a641-35a1fe7c2437
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_with_timeout [0.235107s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_volume_targets_get_member [0.267545s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7456773c-dc01-47d6-b371-c39945d28081
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "78ae46f4-9f7d-4272-a3d3-18445965781f", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/78ae46f4-9f7d-4272-a3d3-18445965781f", "rel": "self"}, {"href": "http://localhost/volume/targets/78ae46f4-9f7d-4272-a3d3-18445965781f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_member [0.251271s] ... 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-7f7b7c01-3e10-4287-916b-80896f3b11d4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_lessee_admin_can_patch_volume_target [0.305018s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/06fa0000-191b-42d6-a1c8-4813ecccdeb5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-1eef6c3e-5279-4fa2-8e0f-448ee334fb35
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout [0.174839s] ... ok
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/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_volume_targets_get_reader [0.146921s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e0f9d7bb-aaf1-47ec-beb6-9df0088e3b80
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "42f29e77-6826-4f1d-bfba-3071c4350104", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/42f29e77-6826-4f1d-bfba-3071c4350104", "rel": "self"}, {"href": "http://localhost/volume/targets/42f29e77-6826-4f1d-bfba-3071c4350104", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout [0.160669s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_get_observer [0.199311s] ... 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-0a31405c-d08a-439b-996b-b96b2e3b74b8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_volume_targets_get_service [0.101085s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-fb1f23e0-1ce2-4063-8e4d-a9142d56551b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "d4bef717-7406-4ed3-9320-ee2303087680", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d4bef717-7406-4ed3-9320-ee2303087680", "rel": "self"}, {"href": "http://localhost/volume/targets/d4bef717-7406-4ed3-9320-ee2303087680", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_427_lessee_manager_can_patch_volume_target [0.297349s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/41911c26-36f3-4228-96a7-abff58e7f275 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-ff154230-fd55-4c4e-b869-627b6f42eee4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate [0.165099s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_volume_targets_post_admin [0.139423s] ... 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/9e74c64e-32df-494a-80e6-617afc294655
Openstack-Request-Id: req-d37f9118-bb06-4823-9d2c-64eaee60b7e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9e74c64e-32df-494a-80e6-617afc294655", "created_at": "2025-06-04T21:52:22.530021+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9e74c64e-32df-494a-80e6-617afc294655", "rel": "self"}, {"href": "http://localhost/volume/targets/9e74c64e-32df-494a-80e6-617afc294655", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_admin [0.169579s] ... 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-ab18f3a6-5217-4973-9a8a-68aa739afc75
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_volume_targets_post_member [0.096926s] ... 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/dd6e91bd-2415-4518-823a-b1c31b676773
Openstack-Request-Id: req-014eaf3f-48df-4f60-96a3-b3be11346d74
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "dd6e91bd-2415-4518-823a-b1c31b676773", "created_at": "2025-06-04T21:52:22.627400+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/dd6e91bd-2415-4518-823a-b1c31b676773", "rel": "self"}, {"href": "http://localhost/volume/targets/dd6e91bd-2415-4518-823a-b1c31b676773", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.167294s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_lessee_member_cannot_patch_volume_target [0.257547s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/e60459e5-8699-43ca-95fa-5629d0ffc52e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a77a6087-2067-4732-a788-7b5bdf892071
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_volume_targets_post_service [0.112532s] ... 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/14540cba-f28b-41d9-bcca-ef6575751d0b
Openstack-Request-Id: req-77642d02-0a5d-44bb-88b8-199e46400a9e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "14540cba-f28b-41d9-bcca-ef6575751d0b", "created_at": "2025-06-04T21:52:22.729873+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/14540cba-f28b-41d9-bcca-ef6575751d0b", "rel": "self"}, {"href": "http://localhost/volume/targets/14540cba-f28b-41d9-bcca-ef6575751d0b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_volume_targets_post_service_project [0.130527s] ... 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/c8ca990a-9775-454a-aa69-663ea06f452a
Openstack-Request-Id: req-3cbf0ad1-9514-4338-89af-a303ba400cd0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c8ca990a-9775-454a-aa69-663ea06f452a", "created_at": "2025-06-04T21:52:22.868895+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c8ca990a-9775-454a-aa69-663ea06f452a", "rel": "self"}, {"href": "http://localhost/volume/targets/c8ca990a-9775-454a-aa69-663ea06f452a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_pci_devices.PciDevicesTestCase.test_pci_devices [0.174668s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_429_third_party_admin_cannot_patch_volume_target [0.281015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/9a4a89f3-e4c4-4c87-80c8-9cd0a5e29f92 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-738de020-6e51-4a41-8f15-873c7aef9a55
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 9a4a89f3-e4c4-4c87-80c8-9cd0a5e29f92 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_volume_targets_post_service_project_disabled [0.177052s] ... 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-78479140-2577-4b78-8b29-b5415f866f77
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ramdisk_error.RamdiskErrorTestCase.test_ramdisk_error [0.185391s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.drivers.modules.inspector.hooks.test_validate_interfaces.GetInterfacesTestCase.test_get_interfaces [0.090343s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_member [0.622856s] ... 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-7d27d8c6-fcb1-49c5-ac3b-6875c3a494af
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_volume_targets_post_service_project_admin [0.136326s] ... 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-422c395f-4b2d-4eaa-b0e9-a5889bb76766
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_active_interfaces [0.094215s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_post_observer [0.109966s] ... 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-4ce6a658-7f9c-4568-a8c9-ea2fbeda7790
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_volume_targets_post_reader [0.098571s] ... 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-f95bc79a-da07-4003-83b6-95872e8e1088
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_430_service_cannot_patch_volume_target [0.280620s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/b181edbd-d0e6-4401-8289-a12e9d8b590f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-425a4871-bbbe-4e9a-9da1-a6db5e28be06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target b181edbd-d0e6-4401-8289-a12e9d8b590f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_admin [0.078709s] ... 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-49e87f30-4c83-417f-9954-b55c2b2124ae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_all_interfaces [0.096895s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_volume_volume_target_id_get_admin [0.098206s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/03c6a809-20e0-4733-8e98-d9710c78c640 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-988176b7-a3e9-444a-ae2b-25c5b998f6c1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "03c6a809-20e0-4733-8e98-d9710c78c640", "created_at": "2025-06-04T21:52:23.352345+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/03c6a809-20e0-4733-8e98-d9710c78c640", "rel": "self"}, {"href": "http://localhost/volume/targets/03c6a809-20e0-4733-8e98-d9710c78c640", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_no_pxe_fallback_to_all [0.088823s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_member [0.117900s] ... 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-cbf48b78-1777-4fd3-b9d8-10099a13bc13
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_volume_volume_target_id_get_member [0.095221s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/0fa9a447-a39e-4a11-ae3f-fe71bb8cfabe WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-492fa5ad-6e14-42a7-9a78-7fc05a8c8441
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "0fa9a447-a39e-4a11-ae3f-fe71bb8cfabe", "created_at": "2025-06-04T21:52:23.443474+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/0fa9a447-a39e-4a11-ae3f-fe71bb8cfabe", "rel": "self"}, {"href": "http://localhost/volume/targets/0fa9a447-a39e-4a11-ae3f-fe71bb8cfabe", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_nothing_to_add [0.096664s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_put_observer [0.085221s] ... 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-eb5d44a3-ecde-4005-b03c-13e1693382cb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_volume_volume_target_id_get_reader [0.092876s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/1ad8de8c-d5b5-48be-b63e-9038c2221277 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-86e44499-1f15-416f-b04b-f3e88f98cebd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1ad8de8c-d5b5-48be-b63e-9038c2221277", "created_at": "2025-06-04T21:52:23.542279+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/1ad8de8c-d5b5-48be-b63e-9038c2221277", "rel": "self"}, {"href": "http://localhost/volume/targets/1ad8de8c-d5b5-48be-b63e-9038c2221277", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_431_owner_admin_can_delete_volume_target [0.296085s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/47248449-3147-4698-b71c-13da4324a95d GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-1ca46d42-1c0c-4609-98e8-12d9aa0b5c14
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_admin [0.083808s] ... 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-627ac77f-17d1-43b9-9356-edc50d100521
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_pxe_only [0.106014s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_volume_volume_target_id_get_service [0.102102s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/920715d2-ca91-494e-acbe-de61280104dc WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c4033fe4-6915-46ea-819d-3125466056a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "920715d2-ca91-494e-acbe-de61280104dc", "created_at": "2025-06-04T21:52:23.652914+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/920715d2-ca91-494e-acbe-de61280104dc", "rel": "self"}, {"href": "http://localhost/volume/targets/920715d2-ca91-494e-acbe-de61280104dc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_member [0.074192s] ... 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-696511f1-2c86-4305-98bc-3be3fc7ce194
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_volume_volume_target_id_patch_admin_extra [0.141952s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/18b93cbe-8f6e-45be-a67b-eed760c8bbca WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-f85efb37-959b-4590-8cb3-e913b821d616
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_vendor_passthru_delete_observer [0.097697s] ... 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-35198754-0993-4eb8-9fd4-0402de4d4c40
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test [0.156954s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_432_owner_manager_can_delete_volume_target [0.289302s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/fff2ee1c-11e9-4b47-9f5e-14ae690ed32d GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-004bf404-79a6-41c1-b29f-1482490258ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_admin [0.130720s] ... 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-0ab64c7a-ecf3-4cb3-a4d7-b8a8d051c317
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_member [0.159849s] ... 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-01126297-bcc0-43d3-8d28-4755002b749d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_owner_manager_can_delete_volume_target_service [0.300567s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/ce1aae73-8384-4d6e-93f6-a250c4ea0e25 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-c7d15d6b-4ee2-4f51-aae6-dee86e2ff216
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_volume_volume_target_id_patch_admin [0.443466s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/45d5f479-ea01-41ea-9925-b96c2c6aed72 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-23fc397f-8c68-4591-b74b-b2553041f2de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_get_observer [0.158564s] ... 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-eaff5dc9-1db9-4cdc-8039-997dcebbc047
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_volume_volume_target_id_patch_reader [0.099934s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/fc121aa9-64f3-461c-8713-e6023821ec80 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a7a34be3-595b-4d11-bbd2-68f690b555a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_volume_volume_target_id_patch_service_disabled [0.110950s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/ee2133f0-029f-4760-8e3c-badca585d4d3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-6c125ce7-c990-42a6-88d8-60589b7272a8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_lessee_admin_can_delete_volume_target [0.276638s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/53ed9387-b9ba-4733-b5a4-1637aab69f87 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-adf2f8e1-aca8-4132-931b-161b73973992
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_admin [0.245901s] ... 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-a24b247c-fb6b-4948-b0cc-836877c04ad2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_volume_volume_target_id_patch_service [0.144800s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/fac4850a-b0a5-4887-8b23-23de11ad4d6c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-121ac5b5-a1da-4c19-9c87-89195ce90b79
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test_store_logs [0.853822s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_241_volume_volume_target_id_delete_admin [0.099028s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/4c7225ef-a66b-44ee-a643-4d02ed429b98 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-f601e2f9-c603-4752-a9ee-a7cfe5665659
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_member [0.201216s] ... 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-c43eb9ad-e442-4dff-ad53-d570c403dcf9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_435_lessee_manager_can_delete_volume_target [0.269091s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/aa659209-bad8-4d6d-aa81-80417ac92c97 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-96009317-a148-4e38-b288-6e3cbb3c31b6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_volume_volume_target_id_delete_member [0.103470s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/ede5dea8-d985-4271-ba9f-de03f66777cd GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-39e49218-b935-46d8-bb67-043cd2c18008
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_disable_power_off [0.179168s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_088_nodes_traits_put_observer [0.167935s] ... 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-f6bdd6ae-a596-41f9-acb4-f963ca394ead
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_436_owner_member_cannot_delete_volume_target [0.260655s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/91ea0315-d040-44f5-9e68-dd4cac07947d GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-44e33dac-c920-4e4a-a8a8-f5b4f74b6ff5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_volume_volume_target_id_delete_reader [0.210128s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/c0102700-3375-4a62-8524-24de125c4214 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-438ba517-65b5-4c38-91aa-967409f4b456
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_admin [0.160897s] ... 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-941acaca-1bac-4fa4-a749-c927038e8bbe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_ok [0.219534s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_volume_volume_target_id_delete_service [0.154393s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/7dfa2c79-09a8-4592-b302-1815fa52f9ed GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-949cc64c-7be3-4933-b3a0-fc215a597e8a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_member [0.169748s] ... 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-cad0729c-cb50-4c80-8cbb-cab1909151c2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_437_lessee_member_cannot_delete_volume_target [0.249488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/4e322472-f454-42d4-a5df-707e8efdce8c GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0fac6058-3536-4b77-bb6d-0c8657a82d1c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_nodes_volume_get_admin [0.089873s] ... 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-6edb882a-1ad6-4702-8610-63a84772d140
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{1} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_unversion_url [0.243456s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_nodes_volume_get_member [0.140916s] ... 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-ac6a49a5-a154-4f66-9fd2-655813ecbf9b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_third_party_admin_cannot_delete_volume_target [0.216522s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/d6796ae2-2a51-4d8d-823b-5cf1b0bea0ff GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-74d3ff43-57c2-4121-9a13-0fe476321c48
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target d6796ae2-2a51-4d8d-823b-5cf1b0bea0ff could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_delete_observer [0.247246s] ... 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-5e5ad30d-a120-470c-8a28-efa4bf44e3a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disable_power_off [0.179422s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_nodes_volume_get_reader [0.110683s] ... 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-a8de72da-2d11-49c6-8984-166b7ba0cfc8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]}
{1} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disallowed [0.112879s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_439_service_cannot_delete_volume_target [0.184718s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/fda95bd7-8c5f-4a48-b3c3-660bab84b1fd GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-88bc2273-8e5b-423b-b756-621b424119ad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target fda95bd7-8c5f-4a48-b3c3-660bab84b1fd could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_nodes_volume_connectors_get_admin [0.176579s] ... 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-0bd5a659-b922-4ead-ac81-1bb6b68fa229
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "8f2dbfa0-4ce5-48ff-ae38-680b53bc22c8", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8f2dbfa0-4ce5-48ff-ae38-680b53bc22c8", "rel": "self"}, {"href": "http://localhost/volume/connectors/8f2dbfa0-4ce5-48ff-ae38-680b53bc22c8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_admin [0.279140s] ... 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-061a00da-9096-47ac-84bd-d8754f3abf89
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_ok [0.226191s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_440_owner_reader_can_get_volume_connectors [0.198099s] ... 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-cf8cd042-d01d-44f0-83bf-92cc30653088
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_nodes_volume_connectors_get_member [0.184567s] ... 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-64b91e9c-1422-404d-9880-027f0b358a1d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "1ac5b552-13d8-458d-8053-1573b6756af3", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1ac5b552-13d8-458d-8053-1573b6756af3", "rel": "self"}, {"href": "http://localhost/volume/connectors/1ac5b552-13d8-458d-8053-1573b6756af3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.160914s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_member [0.247751s] ... 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-47c1df83-2403-43b8-81d1-0e6b4a14e311
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_owner_service_can_get_volume_connectors [0.205483s] ... 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-b6729d67-c108-4eb6-9d4d-77e0ee87de50
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_nodes_volume_connectors_get_reader [0.197588s] ... 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-08d5d768-f81d-44b4-b164-bdff37fb5951
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "29bfc52b-825f-4eaf-a6f5-12c1d3dfb6c7", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/29bfc52b-825f-4eaf-a6f5-12c1d3dfb6c7", "rel": "self"}, {"href": "http://localhost/volume/connectors/29bfc52b-825f-4eaf-a6f5-12c1d3dfb6c7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.148063s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_442_lessee_reader_can_get_node_volume_connectors [0.132064s] ... 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-64f44aed-8704-45a8-8320-99ed7dbc3e0b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"connectors": [{"uuid": "cae6b022-41ae-455f-aa81-4b60404d4390", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/cae6b022-41ae-455f-aa81-4b60404d4390", "rel": "self"}, {"href": "http://localhost/volume/connectors/cae6b022-41ae-455f-aa81-4b60404d4390", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_nodes_volume_targets_get_admin [0.165556s] ... 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-e2b08b09-15c9-4795-aa65-062dbaa80de3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "19d6d812-3c36-4dbd-b6af-bd024144a3f3", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/19d6d812-3c36-4dbd-b6af-bd024144a3f3", "rel": "self"}, {"href": "http://localhost/volume/targets/19d6d812-3c36-4dbd-b6af-bd024144a3f3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_put_observer [0.245134s] ... 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-3c282c34-baa8-4a71-89a0-e88048cee005
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.139063s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_443_third_party_admin_cannot_get_node_volume_connectors [0.147084s] ... 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-6d45c120-12e6-49fc-a81f-53ff8c60cfcf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_nodes_volume_targets_get_member [0.180026s] ... 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-4f4d12ca-669d-4afd-a5b9-0ea0f30b7b8b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "294323ac-8895-498a-b96c-6e9e1e9471fd", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/294323ac-8895-498a-b96c-6e9e1e9471fd", "rel": "self"}, {"href": "http://localhost/volume/targets/294323ac-8895-498a-b96c-6e9e1e9471fd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{1} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.154704s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_444_service_cannot_get_node_volume_connectors [0.112274s] ... 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-f33cc073-1166-4588-a107-5b6085f047a5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_admin [0.241653s] ... 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-0f3af5f8-6798-4e69-a687-bef8a30514e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_owner_reader_can_get_node_volume_targets [0.104731s] ... 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-a5dcfef0-4628-46f9-b82f-316038baac1c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.124056s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_nodes_volume_targets_get_reader [0.193270s] ... 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-38e0fc79-af48-41a6-84e9-450551bfb0ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "0a616d8e-be1c-4d17-817f-004f39e3d3a1", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0a616d8e-be1c-4d17-817f-004f39e3d3a1", "rel": "self"}, {"href": "http://localhost/volume/targets/0a616d8e-be1c-4d17-817f-004f39e3d3a1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_owner_service_can_read_get_node_volume_targets [0.122348s] ... 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-803f65ff-9cc5-4f2c-8c74-5927c4d07a64
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_ipmi [0.177482s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_member [0.238045s] ... 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-b6c40687-1d70-479c-abbb-71819deba33d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_drivers_get_admin [0.145284s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-07751f54-8fae-4e2a-98d0-fa80892b0955
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"drivers": []}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_lessee_reader_can_get_node_volume_targets [0.129317s] ... 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-7c56305a-9f96-444c-8f2b-b828d8c538a5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"targets": [{"uuid": "1d110ffa-1cd2-4b77-b328-67642c540b62", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1d110ffa-1cd2-4b77-b328-67642c540b62", "rel": "self"}, {"href": "http://localhost/volume/targets/1d110ffa-1cd2-4b77-b328-67642c540b62", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_448_third_part_admin_cannot_read_node_volume_targets [0.086619s] ... 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-98c008a6-222e-4374-a7be-754f24ea63da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_drivers_get_member [0.166546s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-910118c2-95a6-4c55-9813-a0458e4621da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"drivers": []}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_detect_vendor_redfish [0.184714s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_097_nodes_traits_trait_delete_observer [0.233025s] ... 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-9ba8f659-834c-4e0f-9e16-faeea2b6c295
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_449_service_cannot_read_node_volume_targets [0.109922s] ... 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-a3f753ee-edb6-4d9b-a878-61c84125e976
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.152324s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_256_drivers_get_reader [0.158041s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-674f7cb5-bda6-47b1-bdeb-1b9da12310b3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"drivers": []}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_owner_reader_cannot_get_drivers [0.147204s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-d50e307f-94d7-456b-a62b-aa30df890318
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_admin [0.219723s] ... 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-f6843ebd-e332-4faf-b861-91e958947cb7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ng_redfish [0.163097s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_257_drivers_driver_name_get_admin [0.182381s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c19b819b-edd7-47d0-b6cb-a91daa9ce854
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_451_lessee_reader_cannot_get_drivers [0.163459s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6d1f66e4-acac-44ec-9ec5-0a43340b472d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok_ipmi [0.143737s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_member [0.202665s] ... 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-f48a7452-621f-4116-9959-bc59470a6efe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_452_third_party_admin_cannot_get_drivers [0.095846s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-c049b1aa-8f60-4bce-8826-15915feada45
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_ipmi [0.112350s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_258_drivers_driver_name_get_member [0.264693s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-798baea6-f098-41b5-86e7-0a9e1c07d9db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_100_nodes_vifs_get_observer [0.165905s] ... 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-b5258d79-cab0-4f61-9d95-ed31bd407aa6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_redfish [0.145093s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_ipmi [0.122571s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_admin [0.191987s] ... 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-a3539f0a-29a5-4632-ba54-6de6d90a681d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_drivers_driver_name_get_reader [0.283839s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-24b49105-2d55-4808-9dbf-f48c2c8478eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_redfish [0.172860s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_member [0.228159s] ... 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-8e8279cf-30eb-46e2-b574-7c7e0af7bcdb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_453_service_cannot_get_drivers [0.576470s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-b0c1e31c-2bad-431b-b887-a2583f212275
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_drivers_properties_get_admin [0.233210s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-cea29ee1-420b-4152-b760-365d95519080
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_ipmi [0.169934s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_454_owner_reader_cannot_get_drivers_vendor_passthru [0.170948s] ... 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-047c3c5f-a977-4e37-af71-7e7bc0945454
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_103_nodes_vifs_post_observer [0.264016s] ... 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-5a3d5ce1-bc53-4612-85d1-3d282b725305
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_455_lessee_reader_cannot_get_drivers_vendor_passthru [0.098614s] ... 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-7b35c0d7-5e97-4f01-8a72-08e8e74aea3a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_redfish [0.200221s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_261_drivers_properties_get_member [0.283951s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-096ddb13-667b-4b0d-b7ed-61c4c51dcea2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_456_third_party_admin_cannot_get_drivers_vendor_passthru [0.100230s] ... 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-e8f1f9fa-9ef8-4176-a7ae-44220572c6e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.148915s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_457_service_cannot_get_drivers_vendor_passthru [0.098281s] ... 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-13351e22-4234-49ff-9161-ecb74e4e3934
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_admin [0.225811s] ... 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-abc3c2bb-12c2-4118-867d-f914aeeb262a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_drivers_properties_get_reader [0.195053s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c72d2301-dd0b-4fdd-a94e-772e13f01774
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.160231s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_member [0.159585s] ... 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-aca7c8dc-feee-4138-bfc6-1c3d227ba999
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_drivers_raid_logical_disk_properties_get_admin [0.145853s] ... 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-56cc3f73-5fa3-4bea-b638-a77d37b68559
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_458_owner_reader_can_get_bios_setttings [0.201261s] ... 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-ac5a896d-8e9d-4a95-94e0-ad759d8dd8a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"bios": []}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.149982s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_459_lessee_reader_can_get_bios_settings [0.149568s] ... 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-d21ae74c-bfe7-41f7-812a-7e532cf9faf2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"bios": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_106_nodes_vifs_node_vif_ident_delete_observer [0.180588s] ... 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-3f6c41c5-5316-41a8-99b7-a35a8c264c47
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_drivers_raid_logical_disk_properties_get_member [0.178643s] ... 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-256dff1a-1a7b-4b6d-9966-bf7ba252d817
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_460_third_party_admin_cannot_get_bios_settings [0.114688s] ... 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-1566f92e-55ca-4d71-973e-a257b16cf647
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_admin [0.152798s] ... 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-5a579ec3-ec40-4aed-ad6a-a5751d300e5a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng_ipmi [0.197561s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_265_drivers_raid_logical_disk_properties_get_reader [0.152005s] ... 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-9c95eb4d-a459-455f-9f3d-eee5647a6748
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_461_service_can_get_bios_setttings_owner_project [0.148053s] ... 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-c519e27e-dc26-40af-af9e-220e29eba900
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"bios": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_member [0.160749s] ... 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-d0944aa8-fcca-462e-b82b-0e204969dc5c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_drivers_vendor_passthru_methods_get_admin [0.149863s] ... 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-a7568b44-bb03-407f-b009-1b73fc555130
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_462_service_cannot_get_bios_setttings [0.096367s] ... 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-f7c8af9d-c14f-4314-90c8-62bf55969dd9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_463_owner_reader_cannot_get_conductors [0.087427s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c07baf58-9c12-448c-b217-150edfe76130
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_drivers_vendor_passthru_methods_get_member [0.146716s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c14e9960-5a81-4746-a651-192d19e9ef9c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_464_lessee_reader_cannot_get_conductors [0.111731s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-743cf02b-0cf3-4260-9f67-c082d1789770
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_drivers_vendor_passthru_methods_get_reader [0.168488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d2f0e77d-8cef-4fed-ab7d-3b0d69b0d621
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_465_third_party_admin_cannot_get_conductors [0.081529s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-80403bed-04a0-45aa-99df-58ed64cc3ec9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios_ipmi [0.591226s] ... ok
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(
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_466_owner_reader_can_get_allocations [0.097655s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dcf85497-03cf-4a4c-a93a-a3cf07eddc85
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "b7e5ca7f-a68a-43e2-9fdb-8e29cb6f400d", "created_at": "2025-06-04T21:52:29.597803+00:00", "updated_at": "2025-06-04T21:52:29.599229+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/b7e5ca7f-a68a-43e2-9fdb-8e29cb6f400d", "rel": "self"}, {"href": "http://localhost/allocations/b7e5ca7f-a68a-43e2-9fdb-8e29cb6f400d", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_467_lessee_reader_can_get_allocations [0.076490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-03fdfa10-af81-4e15-ab52-e87b01e369ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "f4f79feb-d1c7-426a-8875-2b4239102cc9", "created_at": "2025-06-04T21:52:29.697828+00:00", "updated_at": "2025-06-04T21:52:29.699234+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/f4f79feb-d1c7-426a-8875-2b4239102cc9", "rel": "self"}, {"href": "http://localhost/allocations/f4f79feb-d1c7-426a-8875-2b4239102cc9", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_468_owner_reader_can_get_their_allocation [0.099007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/3401f0ad-524a-4229-bf65-73ab830f140e WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-b5b8376b-c86e-41e6-acf9-e429f9c0c0c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "3401f0ad-524a-4229-bf65-73ab830f140e", "created_at": "2025-06-04T21:52:29.775420+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/3401f0ad-524a-4229-bf65-73ab830f140e", "rel": "self"}, {"href": "http://localhost/allocations/3401f0ad-524a-4229-bf65-73ab830f140e", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_drivers_vendor_passthru_get_admin [0.380104s] ... 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-20940284-f3fc-4ea7-9e9f-85e2396e65d5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_109_nodes_management_indicators_get_observer [0.733897s] ... 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-4adeb22f-b188-47db-bacf-71fb961e136d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_469_lessee_reader_can_get_their_allocation [0.133260s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/bb332a27-8a0b-4193-8048-cfca1133f2ee WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-41998162-ac0e-47ab-9ad8-245d4647bb37
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "bb332a27-8a0b-4193-8048-cfca1133f2ee", "created_at": "2025-06-04T21:52:29.887936+00:00", "updated_at": "2025-06-04T21:52:29.892453+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/bb332a27-8a0b-4193-8048-cfca1133f2ee", "rel": "self"}, {"href": "http://localhost/allocations/bb332a27-8a0b-4193-8048-cfca1133f2ee", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_drivers_vendor_passthru_get_member [0.120669s] ... 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-92b42f8a-a993-4933-8dc4-a19fe645e385
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_110_nodes_management_indicators_component_get_allow ... SKIPPED: API appears to be broken and should be patched outside of this work.
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_470_owner_admin_can_delete_their_allocation [0.200911s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/01d457f6-f63e-4eb0-b8c7-b6db428c07d9 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-9829d0d7-cd95-4a42-a6e8-dd7ce5ef5178
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_drivers_vendor_passthru_get_reader [0.138043s] ... 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-7f1f3bd5-1023-4fbc-a15c-1a4ba5543bd0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.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.
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom_ipmi [0.598434s] ... ok
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.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_drivers_vendor_passthru_post_admin [0.082923s] ... 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-edb6923e-c2e3-4b7a-9f96-22b8c6f2f320
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.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.
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_drivers_vendor_passthru_post_member [0.081413s] ... 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-0da30ee1-c202-409d-97f7-e73869df1271
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_471_owner_manager_can_delete_their_allocation [0.193955s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/49e9a44b-501f-4cfe-9106-009d4ca52485 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-04b61b11-3bec-4d1c-9861-0f6bd4c6e63e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_drivers_vendor_passthru_post_reader [0.064075s] ... 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-0d5dcd10-953b-43a9-987a-5314914e748d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_drivers_vendor_passthru_put_admin [0.070847s] ... 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-3b29b3f7-715a-43d3-9237-48aace18b7e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_admin [0.192441s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6cec7eeb-c4be-4124-8a67-216019d9e0ce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_472_lessee_admin_can_delete_their_allocation [0.184103s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/b531826b-c6ae-4a21-b31e-68f4d2d78184 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-d2621c1f-b3d3-49d0-bef6-be6b9529c6c8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_drivers_vendor_passthru_put_member [0.076307s] ... 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-36670499-f61f-481f-9ae9-99de10f2e411
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_drivers_vendor_passthru_put_reader [0.070762s] ... 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-5fd21998-7502-441e-aade-fc4bd6a77b91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_member [0.152118s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cff58b1d-5734-4c5c-8a86-833fb105682d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_drivers_vendor_passthru_delete_admin [0.089679s] ... 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-69024779-5876-45df-acb9-f333cc0515d9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_473_lessee_manager_can_delete_their_allocation [0.173366s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/3846dd35-a005-4fbc-b834-96c31fedf601 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-2f87925b-10b3-4939-af54-499e1dd4d1aa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_drivers_vendor_passthru_delete_member [0.078024s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-15d6c993-c6e0-4f5b-860c-19cdb7c19603
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_get_observer [0.152863s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-eeb8f4fb-ec7e-4e92-ad34-a904679f4a88
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk_ipmi [0.589531s] ... ok
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.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_drivers_vendor_passthru_delete_reader [0.093145s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f4d69b9b-184f-40eb-a9c6-1b131f378a72
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_474_owner_member_can_delete_their_allocation [0.189639s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/843af870-2582-4c48-9d02-910e2ac2c374 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-152148c9-2a1d-438a-ab8e-de74ffb25867
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_nodes_bios_get_admin [0.079670s] ... 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-02cedc05-dbb2-4e8d-b2ac-01c12805d4ce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"bios": [{"created_at": "2025-06-04T21:52:30.944849+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.api.test_acl.TestRBACScoped.test_scoped_canary_116_portgroups_post_admin [0.184200s] ... 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-b1be3c33-6908-4c30-be11-10922f46b40c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_nodes_bios_get_member [0.076332s] ... 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-6d78cbd5-76e7-4923-bef0-512e422aa6ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"bios": [{"created_at": "2025-06-04T21:52:31.017714+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.api.test_acl.TestRBACProjectScoped.test_project_scoped_475_lessee_member_can_delete_their_allocation [0.153110s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/f2baff0b-7244-4a9f-80a6-89e192727bc5 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-f40a13d3-e5e9-4ebc-b81e-b94aa9ba8d2f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_nodes_bios_get_reader [0.087322s] ... 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-2cf1deab-7524-4404-8258-e5a1ce608f7d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"bios": [{"created_at": "2025-06-04T21:52:31.108648+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.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_member [0.170620s] ... 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-25fc0e78-dd36-453f-9544-6b38055d0e63
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_nodes_bios_bios_setting_get_admin [0.103824s] ... 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-bbfad56d-6881-4cc4-8e48-b275b0778c79
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"FAKE_SETTING": {"created_at": "2025-06-04T21:52:31.213282+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_476_owner_member_can_patch_allocation [0.179086s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/dfb129af-d728-451e-8612-9b097f189f2d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4fed8b36-59f7-45a5-b42d-43be787b140e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "dfb129af-d728-451e-8612-9b097f189f2d", "created_at": "2025-06-04T21:52:31.159562+00:00", "updated_at": "2025-06-04T21:52:31.247241+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/dfb129af-d728-451e-8612-9b097f189f2d", "rel": "self"}, {"href": "http://localhost/allocations/dfb129af-d728-451e-8612-9b097f189f2d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe_ipmi [0.497494s] ... ok
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.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_nodes_bios_bios_setting_get_member [0.122719s] ... 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-3dea3a27-2a85-4f17-a601-cd580cde2949
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"FAKE_SETTING": {"created_at": "2025-06-04T21:52:31.303826+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_118_portgroups_post_observer [0.179984s] ... 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-081b9716-8916-49c1-847c-15af3e9fa27e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_477_lessee_member_can_patch_allocation [0.207594s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/7172cc57-a291-4bd9-8b62-2e9df28fae83 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-713544e1-18b3-4939-bfdc-0f8f948293b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "7172cc57-a291-4bd9-8b62-2e9df28fae83", "created_at": "2025-06-04T21:52:31.389219+00:00", "updated_at": "2025-06-04T21:52:31.455317+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/7172cc57-a291-4bd9-8b62-2e9df28fae83", "rel": "self"}, {"href": "http://localhost/allocations/7172cc57-a291-4bd9-8b62-2e9df28fae83", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_admin [0.146924s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-79cefbb4-8f9a-4471-9884-389de3fdbdea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_nodes_bios_bios_setting_get_reader [0.170245s] ... 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-d73b1f0a-f406-4a27-a7ce-cef480cf0491
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"FAKE_SETTING": {"created_at": "2025-06-04T21:52:31.473526+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_member [0.148039s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-db1961a6-daab-4995-8faa-b87fb3743292
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_conductors_get_admin [0.148203s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c51f8bec-4d88-4afd-9f2f-c11f78dc7af1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_478_third_party_admin_can_get_allocations [0.251249s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d869fa7b-3e9a-4ca2-8693-2d60a560d3e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": []}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe_ipmi [0.511869s] ... ok
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.api.test_acl.TestRBACScoped.test_scoped_canary_121_portgroups_detail_get_observer [0.201349s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-54a90c94-7356-48a1-8488-3477f6dbf368
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_conductors_get_member [0.237934s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6e5cf712-c7e5-480b-94b9-bebf495b58d1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_fail_redfish [0.128276s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_479_third_party_admin_can_create_allocation [0.257391s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-3b97c404-764e-48f6-9f2f-67ca2970d2c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_admin [0.197232s] ... 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-57bd54d7-7f4f-4cc6-812a-fb1b4ea22a15
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_success_redfish [0.105875s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_289_conductors_get_reader [0.174134s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0425b18f-2dae-486d-88bf-f1e270c86fc4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_480_third_party_admin_cannot_create_allocation_with_owner_node [0.189773s] ... 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-d92597db-6b06-45bf-84db-aa00dd350242
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_fail [0.101949s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_member [0.158621s] ... 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-645f7c6f-40dd-427c-98f5-7e3e4a741314
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_conductors_hostname_get_admin [0.146315s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ab325968-3776-46a0-b4b9-bd31434ea97f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:52:32.188745+00:00", "updated_at": "2025-06-04T21:52:32.191638+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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_success [0.096897s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_481_third_party_admin_cannot_create_allocation_with_candidates_not_owned [0.167671s] ... 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-0753b075-ef40-4fef-a050-cb8efc4fbb22
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881, 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_conductors_hostname_get_member [0.144016s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-81049b3f-e0fd-4d61-87fd-c0d42ab9e699
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:52:32.341057+00:00", "updated_at": "2025-06-04T21:52:32.342844+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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_fail [0.088480s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_get_observer [0.166554s] ... 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-093fffbe-a162-4e4f-948a-8383de55913a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_success [0.100717s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_482_owner_admin_can_create_allocation_with_their_uuid [0.183513s] ... 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-3e72ce33-ba39-4b14-9807-9cb4204ce5b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_conductors_hostname_get_reader [0.150006s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9b5c30f0-3784-4f32-82b2-214e5d709180
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"created_at": "2025-06-04T21:52:32.490895+00:00", "updated_at": "2025-06-04T21:52:32.493756+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_admin [0.169295s] ... 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-388b94a2-2c07-4b96-8a3e-42ca8e360bd6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_invalid [0.095474s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_missing [0.054200s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_http_success [0.045329s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_483_owner_manager_can_create_allocation_with_their_uuid [0.190172s] ... 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-17c55a8b-2d16-46fe-ab74-581a976dc910
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_https_success [0.050513s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_293_allocations_post_admin [0.227695s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-de366f49-0f23-4acd-8903-b79856627779
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_success [0.059685s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_member [0.262061s] ... 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-2ab32a3e-ee51-4d0c-a037-e07fb206af6c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.041277s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_484_third_party_admin_cannot_read_an_allocation [0.162826s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/b22f6978-7f08-43da-9680-37b6b1da0f55 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-670b9be6-ae23-4a38-8f85-d070cc64c002
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation b22f6978-7f08-43da-9680-37b6b1da0f55 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_allocations_post_member [0.193051s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-98d614b0-2676-4210-825a-b260f7c86c31
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_patch_observer [0.174160s] ... 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-c33d01b5-e22d-4bf4-a5d7-5c4901d0f7af
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_485_third_party_admin_cannot_patch_an_allocation [0.169482s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/68b1c566-f153-4c2e-a123-ddbc81d0a407 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-10ad16cc-ce26-4890-bf51-15eef67dfa1f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 68b1c566-f153-4c2e-a123-ddbc81d0a407 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_allocations_post_reader [0.174067s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7e49fa1e-1033-4af8-a5ae-3c154738d900
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_admin [0.159884s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-aaa01bdf-dab3-4416-8703-246fa73519d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.347884s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.053868s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_486_third_party_admin_cannot_delete_an_allocation [0.197201s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/dedc4682-ea67-4b9c-9a2d-8f39c456730f GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3f918561-4ed9-41e1-87ec-5f278df63492
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation dedc4682-ea67-4b9c-9a2d-8f39c456730f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_allocations_get_admin [0.166010s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-a0f8bb1f-a80d-4786-a028-029008897e41
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "4483ff6c-3dc6-4234-bef8-762eb4516c58", "created_at": "2025-06-04T21:52:33.214444+00:00", "updated_at": "2025-06-04T21:52:33.218830+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/4483ff6c-3dc6-4234-bef8-762eb4516c58", "rel": "self"}, {"href": "http://localhost/allocations/4483ff6c-3dc6-4234-bef8-762eb4516c58", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.057527s] ... ok
{1} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.047423s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_member [0.178626s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-68b1ec89-9c37-4c55-9bf6-c637aff8ee14
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.063311s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_297_allocations_get_member [0.178060s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1c5c9558-9407-4b9c-8d83-571b8c81c61f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "71dc46f1-4d0a-4c2a-ba61-dbe648661362", "created_at": "2025-06-04T21:52:33.398321+00:00", "updated_at": "2025-06-04T21:52:33.405174+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/71dc46f1-4d0a-4c2a-ba61-dbe648661362", "rel": "self"}, {"href": "http://localhost/allocations/71dc46f1-4d0a-4c2a-ba61-dbe648661362", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_portgroup [0.076634s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_130_portgroups_portgroup_ident_delete_observer [0.161078s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-5bc64bcb-a506-4957-938b-fb4ef92dd47f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id_raise [0.083958s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_487_owner_reader_can_read_node_allocation [0.300126s] ... 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-af68aad8-7c19-49de-8fc4-771d5d456d4e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "bf9110a2-3fec-49ff-b82e-e618e1250df2", "created_at": "2025-06-04T21:52:33.434736+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/bf9110a2-3fec-49ff-b82e-e618e1250df2", "rel": "self"}, {"href": "http://localhost/allocations/bf9110a2-3fec-49ff-b82e-e618e1250df2", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports [0.064205s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_298_allocations_get_reader [0.164005s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ac72af53-2bf7-4133-b606-28506fbfea49
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"allocations": [{"uuid": "e4ba378c-3db3-47af-a35e-235c12318591", "created_at": "2025-06-04T21:52:33.554364+00:00", "updated_at": "2025-06-04T21:52:33.578215+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/e4ba378c-3db3-47af-a35e-235c12318591", "rel": "self"}, {"href": "http://localhost/allocations/e4ba378c-3db3-47af-a35e-235c12318591", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_admin [0.156875s] ... 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-3aaeac2e-e5fe-45ac-a947-dfbb686942e3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports_portgroup [0.060344s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_flat.TestFlatInterface.test_add_cleaning_network [0.081189s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_299_allocations_allocation_id_get_admin [0.175931s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/b516aec5-31b9-447a-a8e7-6bd725416403 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-575c5423-9abb-4829-8324-97d9aff48789
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b516aec5-31b9-447a-a8e7-6bd725416403", "created_at": "2025-06-04T21:52:33.732796+00:00", "updated_at": "2025-06-04T21:52:33.737348+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/b516aec5-31b9-447a-a8e7-6bd725416403", "rel": "self"}, {"href": "http://localhost/allocations/b516aec5-31b9-447a-a8e7-6bd725416403", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_488_lessee_reader_can_read_node_allocation [0.253835s] ... 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-91bdf692-0e7c-4a63-8bf8-8f0a75c1bcfb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "48fd3836-12b9-47ef-9bd5-e03d10d9bdfb", "created_at": "2025-06-04T21:52:33.769181+00:00", "updated_at": "2025-06-04T21:52:33.770723+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/48fd3836-12b9-47ef-9bd5-e03d10d9bdfb", "rel": "self"}, {"href": "http://localhost/allocations/48fd3836-12b9-47ef-9bd5-e03d10d9bdfb", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_member [0.199321s] ... 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-c437fc37-6b9c-4746-9119-6eb7a405657b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node [0.181390s] ... ok
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.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_allocations_allocation_id_get_member [0.154671s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/fb4d80fa-332f-4b07-94ce-f3c308456e41 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e984eb38-d394-475f-8116-c6da9e14092c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "fb4d80fa-332f-4b07-94ce-f3c308456e41", "created_at": "2025-06-04T21:52:33.898856+00:00", "updated_at": "2025-06-04T21:52:33.910907+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/fb4d80fa-332f-4b07-94ce-f3c308456e41", "rel": "self"}, {"href": "http://localhost/allocations/fb4d80fa-332f-4b07-94ce-f3c308456e41", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_get_observer [0.158032s] ... 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-7109c4ac-e30c-4be8-b384-ed1c6e052418
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network [0.134526s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_301_allocations_allocation_id_get_reader [0.156268s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/58953e3a-290a-464c-826a-d7f0bbe84388 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5fc6fcdd-253c-4167-9a83-6869ae63b029
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "58953e3a-290a-464c-826a-d7f0bbe84388", "created_at": "2025-06-04T21:52:34.066683+00:00", "updated_at": "2025-06-04T21:52:34.076114+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/58953e3a-290a-464c-826a-d7f0bbe84388", "rel": "self"}, {"href": "http://localhost/allocations/58953e3a-290a-464c-826a-d7f0bbe84388", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_admin [0.152109s] ... 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-eacb5fe0-3793-45b2-8b37-764a14153e8a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_inspection_network_from_node [0.189766s] ... ok
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.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_allocations_allocation_id_patch_admin [0.194132s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/68edec5e-60fe-4f30-9ba2-77c66a894221 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-eaa5ceae-e749-4cb9-aa8b-45db7a1484dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "68edec5e-60fe-4f30-9ba2-77c66a894221", "created_at": "2025-06-04T21:52:34.216080+00:00", "updated_at": "2025-06-04T21:52:34.326731+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/68edec5e-60fe-4f30-9ba2-77c66a894221", "rel": "self"}, {"href": "http://localhost/allocations/68edec5e-60fe-4f30-9ba2-77c66a894221", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_member [0.154954s] ... 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-7102d39f-f51e-4435-80f3-9697d73a224a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network [0.109476s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_flat.TestFlatInterface.test_add_rescuing_network [0.097909s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_303_allocations_allocation_id_patch_member [0.179232s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/1e4c79c8-f5eb-44cd-869c-d89602885a8b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f194e6e9-9b25-497a-a976-8b6a052ed0c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1e4c79c8-f5eb-44cd-869c-d89602885a8b", "created_at": "2025-06-04T21:52:34.420618+00:00", "updated_at": "2025-06-04T21:52:34.517803+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/1e4c79c8-f5eb-44cd-869c-d89602885a8b", "rel": "self"}, {"href": "http://localhost/allocations/1e4c79c8-f5eb-44cd-869c-d89602885a8b", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_136_nodes_portgroups_detail_get_observer [0.162759s] ... 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-12b433e5-9124-4581-9824-8294e2d37937
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_489_third_party_admin_cannot_read_node_allocation [0.718925s] ... 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-5e119d54-d3a7-4f9b-abf6-9134ba1ae4d1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_get_node_network_data [0.111037s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_304_allocations_allocation_id_patch_reader [0.163869s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/14fda1a3-450c-4500-8818-f82bcb48bb1d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b04ed38e-5698-4ce0-9032-4d9d537360dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network [0.092267s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_admin [0.159372s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0fbdbcc2-eb8c-44e4-8405-b2040b868f85
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_490_owner_admin_can_delete_allocation [0.180795s] ... 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-a85904eb-b785-46e7-888c-623671123dc0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_member [0.152902s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a80a6162-43e3-473c-bdd7-b08b502420e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network [0.175208s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_491_owner_manager_can_delete_allocation [0.191282s] ... 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-1425c029-4f41-4eaf-9981-a8c86e70191a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_get_observer [0.148722s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-633bd410-a860-4bd1-8af4-2d71f0f802ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_492_lessee_admin_can_delete_allocation [0.171414s] ... 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-3a06332e-50a1-47b6-8d75-3b4fb6d74cbd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node [0.292502s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_140_ports_post_admin [0.188844s] ... 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-aa10fda3-61e6-47ae-b868-0f06e06c77d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_493_lessee_manager_not_delete_allocation [0.172059s] ... 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-191f623f-9b45-4d01-9bf4-517c974ce92c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_provisioning_network [0.149575s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_141_ports_post_member [0.171086s] ... 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-50bccf33-f69b-4a5f-a6af-c933ba6e5427
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_rescuing_network [0.127989s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_494_third_party_admin_cannot_delete_allocation [0.169303s] ... 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-acf8840e-6364-4be3-9124-1d390ec6fcd7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate [0.122350s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_495_owner_reader_cannot_get_deploy_templates [0.151767s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-04eb9dcf-7d8a-492d-a753-3d5107bc6527
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_post_observer [0.228424s] ... 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-56355629-d87b-4f40-973f-51dfae8b5595
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node [0.122988s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_305_allocations_allocation_id_delete_admin [1.034664s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/f629a934-fb42-438a-a58f-43b617208667 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-21ece3ed-eb4d-4838-9110-2475379f3fd6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_496_lessee_reader_cannot_get_deploy_templates [0.173597s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3161f9ee-3e4b-4927-84db-d21bcdc45024
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_admin [0.188931s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-088de4b5-cf98-4274-a00a-00daac0cc577
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection [0.131574s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_flat.TestFlatInterface.test_validate_inspection_exc [0.099570s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_497_third_party_admin_cannot_get_deploy_templates [0.190321s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-308fda42-74a5-4d8b-9b41-67143e3d10e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_member [0.165841s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6963c50a-f4e8-4d52-94dd-11c201f97d36
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach [0.110147s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_306_allocations_allocation_id_delete_member [0.405604s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/96d259dc-7f83-499f-9871-11fccb321db1 GOT Response: 503 Service Unavailable
Content-Type: application/json
Openstack-Request-Id: req-ef404231-88d2-4e76-bca0-95e51f0b1bb3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_498_third_party_admin_cannot_post_deploy_template [0.224969s] ... 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-426160a5-4c0a-4e55-a832-d3d166863a22
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach [0.134341s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_flat.TestFlatInterface.test_vif_list [0.152684s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_307_allocations_allocation_id_delete_reader [0.295488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/3f7d1837-8776-4ad3-b519-9aea558fb622 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8e4efc9c-7a3e-434b-942f-efc41305bf98
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_499_service_cannot_get_deploy_templates [0.232437s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-a1aadefd-769c-4c2e-8503-f262544c5d61
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed [0.170605s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_308_nodes_allocation_get_admin [0.254574s] ... 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-f73eed9a-8560-4798-b693-b9140d4d4254
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b6c9b593-a142-4ff8-a565-1f7a75718d9f", "created_at": "2025-06-04T21:52:36.521921+00:00", "updated_at": "2025-06-04T21:52:36.543576+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/b6c9b593-a142-4ff8-a565-1f7a75718d9f", "rel": "self"}, {"href": "http://localhost/allocations/b6c9b593-a142-4ff8-a565-1f7a75718d9f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_500_service_cannot_post_deploy_template [0.228995s] ... 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-782921e4-9c38-4f32-b8c0-60589df09b96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_detail_get_observer [0.770893s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-273937f5-b110-43fa-a0ea-0e493254b9ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_501_owner_reader_cannot_access_chassis [0.100486s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4ad896a1-9ed7-4bcb-966a-c1057a3f1560
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.250935s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_309_nodes_allocation_get_member [0.245370s] ... 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-1e1d931d-6706-4d18-9331-48bbcb69ac63
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "64fbac5c-10e4-4ce3-a79c-ea9589129318", "created_at": "2025-06-04T21:52:36.832094+00:00", "updated_at": "2025-06-04T21:52:36.845575+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/64fbac5c-10e4-4ce3-a79c-ea9589129318", "rel": "self"}, {"href": "http://localhost/allocations/64fbac5c-10e4-4ce3-a79c-ea9589129318", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_502_lessee_reader_cannot_access_chassis [0.184166s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-603efc92-b203-4478-8104-4daf4093644f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_admin [0.260301s] ... 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-d4ddc70a-45a5-4c84-9fa6-ea1fd2bc0c32
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.296638s] ... ok
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.api.test_acl.TestRBACScopedRequests.test_system_scoped_310_nodes_allocation_get_reader [0.232479s] ... 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-dd54a5b6-e9c7-4db9-b646-7ea8c83dd44b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "66254b52-0ce0-4e01-8b9f-07c5f54b166e", "created_at": "2025-06-04T21:52:37.044909+00:00", "updated_at": "2025-06-04T21:52:37.053302+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/66254b52-0ce0-4e01-8b9f-07c5f54b166e", "rel": "self"}, {"href": "http://localhost/allocations/66254b52-0ce0-4e01-8b9f-07c5f54b166e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_503_third_party_admin_cannot_access_chassis [0.172007s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-543f4d27-9dc1-4fc5-bf89-c1925c39e990
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_member [0.169275s] ... 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-22928937-d755-4e61-bd90-1352b35bf7cd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.164303s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_504_third_party_admin_cannot_create_chassis [0.177791s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-1ba7555f-5e48-4c42-ba40-26178a9ee27d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_get_observer [0.152777s] ... 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-fe4e1034-00e1-4b6b-9986-8fbb878278ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_311_nodes_allocation_delete_admin [0.210778s] ... 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-62675059-7113-4fd0-a810-92abdd7b2abe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network [0.149410s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_505_service_cannot_access_chassis [0.179794s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-3afddce1-2d24-434c-8dd6-06d2c16288e4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_admin [0.177967s] ... 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-8cbb4b6d-8c0d-4243-a54e-5374c52ee889
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_312_nodes_allocation_delete_member [0.196910s] ... 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-b6cacfee-e52e-4fbe-9dcf-f883f030a495
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node [0.239563s] ... ok
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.api.test_acl.TestRBACProjectScoped.test_project_scoped_506_service_cannot_create_chassis [0.157929s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-53d08f7d-e1f4-4743-bdbd-90fe2cf3c065
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_member [0.168280s] ... 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-4485eba2-749e-4408-addc-ad762f024e45
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_313_nodes_allocation_delete_reader [0.271001s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-eba3a4a9-7f33-47e8-827a-c3929bb22e39
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg [0.150774s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_151_ports_port_id_patch_observer [0.166394s] ... 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-f831bb1c-0829-4083-aa86-cee90f8817dc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_507_node_history_get_admin [0.186790s] ... 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-beff51d7-faea-4210-a87c-08d2f12e97e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "7fcf8dcf-2b8d-459c-a714-891c5de96466", "created_at": "2025-06-04T21:52:37.813797+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/7fcf8dcf-2b8d-459c-a714-891c5de96466", "rel": "self"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_admin [0.146233s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7dd1bc43-e8e9-4fec-946a-1090169e6f75
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.192468s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_314_deploy_templates_post_admin [0.233354s] ... 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/5aec6905-5230-477a-b4c4-69e1487982c3
Openstack-Request-Id: req-052f0018-070e-43e9-846b-9265daff1fcf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "5aec6905-5230-477a-b4c4-69e1487982c3", "created_at": "2025-06-04T21:52:38.085663+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5aec6905-5230-477a-b4c4-69e1487982c3", "rel": "self"}, {"href": "http://localhost/deploy_templates/5aec6905-5230-477a-b4c4-69e1487982c3", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_508_node_history_get_member [0.193181s] ... 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-5356a744-3fd8-429e-bdac-80bde4a918fc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "10fc6ddc-7d9e-4d99-91e2-dd414a2de2e4", "created_at": "2025-06-04T21:52:38.030107+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/10fc6ddc-7d9e-4d99-91e2-dd414a2de2e4", "rel": "self"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_member [0.172085s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d184f710-db6f-4d03-b129-3146a7b016da
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_315_deploy_templates_post_member [0.198568s] ... 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-43d88449-e28f-4b5e-8f38-950085cd3ba9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_509_node_history_get_reader [0.168688s] ... 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-c791bd00-7f30-4ada-803d-d82d4fb491ad
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "18ed32df-60ca-444c-b6e0-2202cbe3c1f6", "created_at": "2025-06-04T21:52:38.197437+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/18ed32df-60ca-444c-b6e0-2202cbe3c1f6", "rel": "self"}]}]}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.240567s] ... ok
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.api.test_acl.TestRBACScopedRequests.test_system_scoped_316_deploy_templates_post_reader [0.092238s] ... 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-cf9ed634-ac55-4209-9ac8-be7f6afc0ac0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_ports_port_id_delete_observer [0.174421s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-e1d6536e-6ca5-478a-a39f-614c120ab8b1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_317_deploy_templates_get_admin [0.102728s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bdedfb94-3bdc-4815-8723-42f8612ee3f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "7bec1bf4-cc8e-414f-bdf9-8e5e881381cc", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/7bec1bf4-cc8e-414f-bdf9-8e5e881381cc", "rel": "self"}, {"href": "http://localhost/deploy_templates/7bec1bf4-cc8e-414f-bdf9-8e5e881381cc", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.197886s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_510_node_history_get_service [0.251072s] ... 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-6d6bab79-9513-4acc-bd07-d130acb444a0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "28dc3ce2-d4f3-4b77-9d12-1682f398cfee", "created_at": "2025-06-04T21:52:38.434676+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/28dc3ce2-d4f3-4b77-9d12-1682f398cfee", "rel": "self"}]}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_318_deploy_templates_get_member [0.097844s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3cd2b069-40e1-42a7-9558-ee802a87d4b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "f2c46945-f09b-4b14-8631-866c6b6194b8", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/f2c46945-f09b-4b14-8631-866c6b6194b8", "rel": "self"}, {"href": "http://localhost/deploy_templates/f2c46945-f09b-4b14-8631-866c6b6194b8", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_admin [0.221122s] ... 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-0ed63482-23eb-48ad-9249-e6b02557761d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_319_deploy_templates_get_reader [0.075734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cfc68e28-864d-4dfe-b22c-e6e05ec6a241
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"deploy_templates": [{"uuid": "b9cbdd37-f463-44be-847b-fa85969a6ee0", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/b9cbdd37-f463-44be-847b-fa85969a6ee0", "rel": "self"}, {"href": "http://localhost/deploy_templates/b9cbdd37-f463-44be-847b-fa85969a6ee0", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.166097s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_511_node_history_get_service_cannot_be_retrieved [0.183444s] ... 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-f5ccd38a-c6ac-458f-909f-0e31c85f3169
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_320_deploy_templates_deploy_template_id_get_admin [0.099924s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/59bfe90e-2913-4d18-80c7-c5ca0a81c602 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-37b72530-2cf9-47b5-878c-e9f28a1cd4ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "59bfe90e-2913-4d18-80c7-c5ca0a81c602", "created_at": "2025-06-04T21:52:38.730499+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/59bfe90e-2913-4d18-80c7-c5ca0a81c602", "rel": "self"}, {"href": "http://localhost/deploy_templates/59bfe90e-2913-4d18-80c7-c5ca0a81c602", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.162853s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_member [0.255162s] ... 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-8bd99c46-59de-4001-9df4-0ba76513b92b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_512_node_history_get_entry_admin [0.188162s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/8afe1154-793f-4406-a136-937ad95e3344 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-30af8189-4445-454e-8538-38565722d8de
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "8afe1154-793f-4406-a136-937ad95e3344", "created_at": "2025-06-04T21:52:38.845198+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/8afe1154-793f-4406-a136-937ad95e3344", "rel": "self"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_321_deploy_templates_deploy_template_id_get_member [0.229190s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/ced90b37-34b3-4860-9a4c-d68f8b9bae3c WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1ae94882-7756-4768-be16-a7e0493dff42
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ced90b37-34b3-4860-9a4c-d68f8b9bae3c", "created_at": "2025-06-04T21:52:38.937422+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ced90b37-34b3-4860-9a4c-d68f8b9bae3c", "rel": "self"}, {"href": "http://localhost/deploy_templates/ced90b37-34b3-4860-9a4c-d68f8b9bae3c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.146330s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_513_node_history_get_entry_member [0.181583s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/6f844fce-a2df-46e1-a7fe-c568906af858 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d88fca05-1938-406b-9d64-43b2a3dc6bf5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6f844fce-a2df-46e1-a7fe-c568906af858", "created_at": "2025-06-04T21:52:39.013327+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/6f844fce-a2df-46e1-a7fe-c568906af858", "rel": "self"}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_322_deploy_templates_deploy_template_id_get_reader [0.122936s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/bc94fe25-cb11-4e8b-8127-5b655db24ba4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d37244df-e21f-4cdf-a320-acf4de0c62ab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "bc94fe25-cb11-4e8b-8127-5b655db24ba4", "created_at": "2025-06-04T21:52:39.089598+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bc94fe25-cb11-4e8b-8127-5b655db24ba4", "rel": "self"}, {"href": "http://localhost/deploy_templates/bc94fe25-cb11-4e8b-8127-5b655db24ba4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_get_observer [0.250002s] ... 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-e63d17e4-7aff-4d53-918d-9d3e592edcf0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_323_deploy_templates_deploy_template_id_patch_admin [0.151396s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/a8a1967f-6b4a-419e-b7eb-c9eb5f0bcb94 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f560f332-045c-40d4-8d1a-c2b54f0a7d6a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a8a1967f-6b4a-419e-b7eb-c9eb5f0bcb94", "created_at": "2025-06-04T21:52:39.183971+00:00", "updated_at": "2025-06-04T21:52:39.239554+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a8a1967f-6b4a-419e-b7eb-c9eb5f0bcb94", "rel": "self"}, {"href": "http://localhost/deploy_templates/a8a1967f-6b4a-419e-b7eb-c9eb5f0bcb94", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_514_node_history_get_entry_reader [0.184338s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/c0eb7c2c-7401-4157-86b1-444fedd723b0 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5a0846e6-389d-4506-a8e4-3e50cea3bf47
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c0eb7c2c-7401-4157-86b1-444fedd723b0", "created_at": "2025-06-04T21:52:39.203387+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/c0eb7c2c-7401-4157-86b1-444fedd723b0", "rel": "self"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_admin [0.230730s] ... 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-44d94028-57e5-47ed-a7aa-3a3acbd3258d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_324_deploy_templates_deploy_template_id_patch_member [0.261995s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/219cecbf-698f-4dd6-b494-7e59cd6b3d65 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-45e2e885-a9d8-416b-88ab-7d3d56179b4e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks [0.528507s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_515_lessee_node_history_get_admin [0.274691s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/f5dd8a19-3e14-4b66-b9fb-915a55272c7f/history WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8d519d40-8775-4851-87d8-c5499c65d86c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node f5dd8a19-3e14-4b66-b9fb-915a55272c7f could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_member [0.242032s] ... 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-63f44e0e-5c4c-4923-9172-4fff4f216a21
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.086100s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.082385s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.062960s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_325_deploy_templates_deploy_template_id_patch_reader [0.281922s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/55c7c6fe-849c-4241-8726-e16c39d3b977 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d132c5cf-4560-423f-9385-5a2c0ba64c28
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_160_nodes_ports_detail_get_observer [0.248590s] ... 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-05f8fe2a-de81-4729-bdfd-fe309c05b8b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_binding_fail [0.068873s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_516_lessee_node_history_get_member [0.289189s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/42e43245-bca0-4cee-a9b8-49505be5c312/history WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b9c5f9e7-4c61-4dfe-89fe-f82918d739bb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 42e43245-bca0-4cee-a9b8-49505be5c312 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.069362s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.097596s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_326_deploy_templates_deploy_template_id_delete_admin [0.260712s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/271b2a4f-5586-47e9-baa3-3e585fb3a09f GOT Response: 204 No Content
Openstack-Request-Id: req-d4273769-13ae-4626-888c-95e2cd105d57
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_admin [0.248498s] ... 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-5a21b5c8-b991-40ed-82e9-30999331a506
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.102192s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_517_lessee_node_history_get_reader [0.270068s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/6bec35b1-603c-4fc5-adac-5a1dcdf5e540/history WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-19e0fb27-b10d-4e70-ac46-4286fff5d9d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6bec35b1-603c-4fc5-adac-5a1dcdf5e540 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address [0.075998s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_neutron.NeutronInterfaceTestCase.test_get_node_network_data [0.058324s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.050212s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_327_deploy_templates_deploy_template_id_delete_member [0.254018s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/266ec9fa-877d-4dba-bc20-d244e6dda178 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c124ee96-e972-47e2-a1cf-b9c08c634287
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_member [0.256845s] ... 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-be00d379-4570-4af8-9396-5e65b5461032
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.063474s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_518_lessee_node_history_get_entry_admin [0.273643s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/8060c1c7-b5c2-4aba-afcb-5298c536e3e2/history/24f54496-22e9-4c72-a29f-c6ce4bb4c4c6 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-7ef8499d-daf0-4728-b9d5-48f255233b9a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8060c1c7-b5c2-4aba-afcb-5298c536e3e2 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.075838s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.071357s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.070738s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_163_portgroups_ports_get_observer [0.256843s] ... 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-0efe9694-55fd-4840-8df5-9e539d097e7f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_328_deploy_templates_deploy_template_id_delete_reader [0.277730s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/5074d426-916e-41d1-b181-fbf8002d24eb GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-7aff23ad-7534-477c-84e8-c9682f566dcc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.076777s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_519_lessee_history_get_entry_member [0.307042s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/5ed9b5b7-8254-4b78-8683-2fd820da1b82/history/c54cb081-d4ff-40d6-b40b-2b9871032d12 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-61aceacf-5354-40d2-823c-950983483ead
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 5ed9b5b7-8254-4b78-8683-2fd820da1b82 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.091750s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.063042s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_admin [0.248457s] ... 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-1fa69819-a9a0-41b7-8ef0-6a1dc3a9fa01
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_329_chassis_post_admin [0.280419s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created
Content-Type: application/json
Location: http://localhost/v1/chassis/d12f6258-0996-4edc-9baf-0de2d0896af0
Openstack-Request-Id: req-9736b3ee-e849-4c40-ae13-2e9e05f2f73e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "d12f6258-0996-4edc-9baf-0de2d0896af0", "created_at": "2025-06-04T21:52:40.911944+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d12f6258-0996-4edc-9baf-0de2d0896af0", "rel": "self"}, {"href": "http://localhost/chassis/d12f6258-0996-4edc-9baf-0de2d0896af0", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/d12f6258-0996-4edc-9baf-0de2d0896af0/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d12f6258-0996-4edc-9baf-0de2d0896af0/nodes", "rel": "bookmark"}]]}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 [0.129518s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_520_lessee_node_history_get_entry_reader [0.276325s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/98947b62-68ec-4163-a061-e74e38be0c46/history/3a03b681-5a96-455f-b658-a98b2a6182a6 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-b89138ee-b326-45f9-bf46-9b42b5ba3508
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 98947b62-68ec-4163-a061-e74e38be0c46 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_member [0.182246s] ... 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-3216c803-0a9b-480d-91f0-ed04a25d5b56
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 [0.148417s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_330_chassis_post_member [0.264211s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2add51a4-bc18-46d6-8807-1b316ce0a434
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_521_owner_service_node_history_get_entry_reader [0.270949s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/ce177752-81c3-4317-bc6c-600a70c73919 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c0dcef2f-fa62-457a-a7f4-b78143b616a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ce177752-81c3-4317-bc6c-600a70c73919", "created_at": "2025-06-04T21:52:41.158712+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/ce177752-81c3-4317-bc6c-600a70c73919", "rel": "self"}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_portgroups_ports_detail_get_observer [0.233873s] ... 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-568cf488-885d-4edc-9a26-fef9cc4ab603
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.203824s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/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_neutron.NeutronInterfaceTestCase.test_validate [0.108549s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_167_volume_get_admin [0.160858s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e38463c7-08ed-4ee0-9534-a627af4f1074
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_331_chassis_post_reader [0.265963s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2ea74c48-0655-4864-ba40-8c1436be2ad2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection [0.114786s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_522_third_party_admin_cannot_get_node_history [0.267371s] ... 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-eb13db05-48ab-410d-8fd3-6a70f66b7e09
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_member [0.146578s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-425deb20-e8c2-46fc-9357-602d149f2675
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc [0.100820s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_332_chassis_get_admin [0.259022s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-325f3153-0cf5-48da-9644-1d4d4588177d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_get_observer [0.141855s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3bc8e075-ba3e-4fa7-83f2-94169692e135
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.117638s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_523_node_history_get_entry_third_party_admin [0.250447s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/2fef6a71-5b22-448c-8b81-fb50d68f8075 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d71c8709-3d84-4c02-a2a0-4a21972c2e67
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_333_chassis_get_member [0.168669s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-dd9d493c-a597-4e55-a07e-17b2bc6bc917
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.146473s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_admin [0.221319s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f71b8540-3352-4108-8d74-ac53bab6b119
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_524_node_history_get_entry_service [0.183490s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/097c6a60-009e-4f73-9411-e69f812ee72d WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a8c8b3f4-758d-4cff-bc05-bf1e37ceb39f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_334_chassis_get_reader [0.163289s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0893c991-bb3b-44dd-9617-1bb5dffe4797
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_with_disable_power_off [0.162199s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_member [0.188437s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-ef6dd60b-93f2-43ed-b0e2-ec4552eebc42
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.189342s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_172_volume_connectors_get_observer [0.162531s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-00206179-be77-4447-b93d-95b0f373d95f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_335_chassis_get_service [0.268983s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4e3e5868-c5f0-408a-aede-35e51e88d816
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_admin [0.153433s] ... 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-39d12840-6c62-469e-934b-9332f2a79af3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.178527s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_336_chassis_detail_get_admin [0.234470s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ada11962-b5b9-4190-b99e-6037fd3cc2e8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:52:42.509483+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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.126385s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_member [0.214546s] ... 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-d76284b7-246e-4aba-b379-62b72412ee65
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.129383s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_337_chassis_detail_get_member [0.183338s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-50129411-744f-4bc0-bcc2-aec9cb4635d1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:52:42.708610+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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device [0.084750s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_525_node_inventory_get_admin [0.895576s] ... 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-63d2e5a0-339a-4d5f-b2e2-9b13e3575266
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted [0.089540s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_connectors_post_observer [0.259194s] ... 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-925425e5-aae5-4274-8004-cd967cdbfa84
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_338_chassis_detail_get_reader [0.204492s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f633cbc1-93fc-4b5f-ad8a-80e032664450
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:52:42.923321+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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.115779s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_526_node_inventory_get_member [0.179649s] ... 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-c72cbecb-bbf5-47a3-a02c-de6fe6f5f4ae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.100178s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_admin [0.211404s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/7f4fd226-5a9e-4f38-b6e0-e6d7d0f64216 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8a4b9565-c51c-4058-94ca-93467fc490c3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 7f4fd226-5a9e-4f38-b6e0-e6d7d0f64216 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd [0.105542s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_527_node_inventory_get_reader [0.193669s] ... 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-5b53c23c-99a1-4329-8f30-a94ea0bd6528
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd_retry [0.130053s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_member [0.241793s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/76ce03ea-549b-4ee8-ac8a-92b50284e7f6 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-cb1dfd7c-c5d6-4ddf-9be1-acbd2dc625f7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 76ce03ea-549b-4ee8-ac8a-92b50284e7f6 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.106862s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_528_lessee_node_inventory_get_admin [0.208173s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/52d8f41c-a092-451a-8e3c-4ef710f2b660/inventory WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f357c834-2331-4288-9eac-6d97e7db3d81
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 52d8f41c-a092-451a-8e3c-4ef710f2b660 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_empty_media_type [0.136770s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_529_lessee_node_inventory_get_member [0.193448s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/60ca50e0-0acb-4f72-a812-a06aed3f6e1a/inventory WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-13b2d86c-0c4b-4abc-8ba4-6646efe5f98a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 60ca50e0-0acb-4f72-a812-a06aed3f6e1a could not be found.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_get_observer [0.235292s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/connectors/744722d2-314f-4061-8ef4-bee503eb5038 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-70bdc7fa-bdd3-4a82-b9d8-801eed277154
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 744722d2-314f-4061-8ef4-bee503eb5038 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_339_chassis_chassis_id_get_admin [0.741983s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f830ab45-caa4-4f77-b2a0-c059ac12e963
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:52:43.092063+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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting [0.147156s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac [0.092133s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_530_lessee_node_inventory_get_reader [0.180397s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/306bcf07-87a8-4050-b66c-3e2ff9c388b4/inventory WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c4a7fbb4-8d08-48ec-b518-9b96ec78a253
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 306bcf07-87a8-4050-b66c-3e2ff9c388b4 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_340_chassis_chassis_id_get_member [0.191795s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-9b05fe0d-f173-403e-978a-63d3f5f881fa
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:52:43.848702+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.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_admin [0.256623s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/0e5be863-c585-498f-8c4d-ee239dc4880b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4f452c6f-7733-499a-bda9-81e63018033d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 0e5be863-c585-498f-8c4d-ee239dc4880b could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac [0.102138s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_531_shard_get_shards_disallowed [0.114073s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c975e16d-96c0-43fd-980a-07cbf7fb36f7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:shards:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_341_chassis_chassis_id_get_reader [0.161366s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-71e15d29-3c9b-422f-b78d-12d56eea2871
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:52:44.027283+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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.149554s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_532_shard_patch_set_node_shard_disallowed [0.124344s] ... 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-792a10b7-dd8c-4a40-9957-b5d2063ac6d5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_member [0.276726s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/459628a3-b072-488a-8c51-95e167b8479b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-ed561ed2-49e2-4972-accb-6e291474369e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 459628a3-b072-488a-8c51-95e167b8479b could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_342_chassis_chassis_id_patch_admin [0.173691s] ... 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-395fe604-41fd-4637-9741-82590a64569b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:52:44.187812+00:00", "updated_at": "2025-06-04T21:52:44.259560+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_533_parent_node_patch_by_admin [0.189138s] ... 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-b7c33782-42c6-4556-9fba-d6b2289bff90
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_343_chassis_chassis_id_patch_member [0.174369s] ... 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-86e99c67-1fe6-4f9a-8c34-24c347bc1f04
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-06-04T21:52:44.356223+00:00", "updated_at": "2025-06-04T21:52:44.432729+00:00", "description": "meow", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_534_parent_node_patch_by_member [0.204313s] ... 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-422fdaad-6bbb-4716-a09f-3c180e26bc86
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_344_chassis_chassis_id_patch_reader [0.223746s] ... 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-7a7b084c-4bd4-4c44-b21a-fe12f12feb5f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_535_parent_node_patch_by_reader [0.227012s] ... 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-dab707ae-0dd2-4a60-a24f-8488e58820ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_345_chassis_chassis_id_delete_admin [0.212837s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content
Openstack-Request-Id: req-c49825f7-f117-40e4-b337-547e9e89e8a7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_536_parent_node_patch_by_manager [0.191833s] ... 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-5ca73f54-6526-4a05-a2c9-53a5b96dab91
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.837623s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_patch_observer [0.758963s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/connectors/59635858-7493-4270-a8cf-15eadc335928 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-46a38908-ce2c-4211-bf94-f0574fa65c2e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 59635858-7493-4270-a8cf-15eadc335928 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk [0.092422s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_346_chassis_chassis_id_delete_member [0.166424s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-888eefbd-6d4f-4ec8-a28f-27feb6de2700
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.062814s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_537_parent_node_patch_by_cannot_see_node [0.177021s] ... 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-97dda054-c893-4719-ac5c-2d8bec85fd89
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unable to apply the requested parent_node. Requested value was invalid.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_admin [0.168907s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/c25e3412-b0f7-47bc-a5dc-ea0e08b61ee3 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3dd758b8-6a7c-4a70-8b4d-2790ed9925ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector c25e3412-b0f7-47bc-a5dc-ea0e08b61ee3 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything [0.086768s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted [0.050424s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_347_chassis_chassis_id_delete_reader [0.171697s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6e8b9ff3-cdc7-480f-8837-501e1264c8df
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_538_parent_node_children_can_get_list_of_children [0.196751s] ... 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-c95bf4bf-fcfa-4cb7-92ec-ceb13f45a597
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"children": ["3c3b8adb-edd7-3ed0-8e82-aab714d8411a"], "links": {"href": "http://localhost/v1/nodes?parent_node=1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "children"}}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific [0.122622s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_member [0.193404s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/ad2507ad-5be9-4a6d-9500-037ace16334c GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-f097d201-d594-4546-a179-ef3043fe1155
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ad2507ad-5be9-4a6d-9500-037ace16334c could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown [0.044259s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_348_chassis_chassis_id_delete_service [0.159267s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-8b27910c-0a10-4074-a4da-0dd0a517e499
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.064808s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_539_lessee_cannot_get_a_nodes_children [0.202892s] ... 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-4de4206f-7a53-4c64-ba35-33e9fc767c37
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.064878s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_184_volume_volume_connector_id_delete_observer [0.189040s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/connectors/eb567d2c-61db-43e3-be68-2b4473e90329 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6832dc14-fa84-43ea-a846-7b69904adddb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector eb567d2c-61db-43e3-be68-2b4473e90329 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.044355s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_349_node_history_get_admin [0.167173s] ... 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-6030575a-d9a9-46cc-88ae-6a8e6436a944
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "57343b3c-3f52-42f5-ac57-0317c0372f89", "created_at": "2025-06-04T21:52:45.551007+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/57343b3c-3f52-42f5-ac57-0317c0372f89", "rel": "self"}]}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.063796s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.049241s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_admin [0.166849s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-942f66da-1f1a-4339-a149-8f093d34ea75
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_540_owner_reader_can_get_firmware_components [0.201503s] ... 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-08c9b28c-ed1e-410a-937f-bbc1957efecd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"firmware": []}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.049057s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_350_node_history_get_member [0.165770s] ... 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-7f5a2cbf-790c-43d5-a506-31283018a590
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "84d0f979-9da9-46dc-a68d-1f5138ce8249", "created_at": "2025-06-04T21:52:45.718646+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/84d0f979-9da9-46dc-a68d-1f5138ce8249", "rel": "self"}]}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.056923s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.044350s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_186_volume_targets_get_member [0.171573s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b91e9867-dfbc-4013-b61a-1e5f16111e79
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.055113s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_351_node_history_get_reader [0.156309s] ... 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-0feddaa7-6ffd-4a0e-a3aa-c7b0a82c67b2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "722da64c-eed4-4b4e-8083-a449a58536a5", "created_at": "2025-06-04T21:52:45.881023+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/722da64c-eed4-4b4e-8083-a449a58536a5", "rel": "self"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_541_lessee_reader_can_get_firmware_components [0.216281s] ... 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-78c30407-d350-4cab-a168-2744e60ba555
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"firmware": []}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.048049s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.037831s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.048416s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_get_observer [0.188195s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-296be1c5-36ff-432e-9970-027e861b0528
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.050070s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_352_node_history_get_service [0.164247s] ... 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-4f6733d7-022a-4eda-9dc8-24e3f5313789
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"history": [{"uuid": "19856fe9-c402-4a96-9e41-a86db2ba2135", "created_at": "2025-06-04T21:52:46.066121+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/19856fe9-c402-4a96-9e41-a86db2ba2135", "rel": "self"}]}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_542_third_party_admin_cannot_get_firmware_components [0.188617s] ... 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-55d15114-c0a2-4633-83ce-e52a7d4ecd6d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.053426s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.048470s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso [0.033645s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_353_node_history_get_entry_admin [0.146907s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/93b2c977-884f-458b-bd0c-e01d949bcd64 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d1fa7b77-1314-4394-83a9-5affe25a04f5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "93b2c977-884f-458b-bd0c-e01d949bcd64", "created_at": "2025-06-04T21:52:46.218520+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/93b2c977-884f-458b-bd0c-e01d949bcd64", "rel": "self"}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated [0.056612s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_admin [0.224540s] ... 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-4360b3bb-622d-463c-bb15-8eca03bbadce
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.086612s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_543_service_can_get_firmware_components_owner_project [0.232405s] ... 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-9bd30ae7-d676-41c9-8783-3dfbb8e6a6a5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"firmware": []}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_354_node_history_get_entry_member [0.150015s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/eb42c542-0f1e-466d-9113-685f2f073bdb WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8792d965-db2e-4776-ae02-014e20eef7f4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "eb42c542-0f1e-466d-9113-685f2f073bdb", "created_at": "2025-06-04T21:52:46.381307+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/eb42c542-0f1e-466d-9113-685f2f073bdb", "rel": "self"}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.104389s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_member [0.224925s] ... 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-c0b262e2-056e-4cbb-954f-121374130307
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.068886s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.037559s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_355_node_history_get_entry_reader [0.173670s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/979f245d-bb44-4388-8cd9-bf60f1dca82a WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-21e38fd0-c78e-400f-86b4-073e358f0577
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "979f245d-bb44-4388-8cd9-bf60f1dca82a", "created_at": "2025-06-04T21:52:46.538296+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/979f245d-bb44-4388-8cd9-bf60f1dca82a", "rel": "self"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_544_service_cannot_get_firmware_components [0.219438s] ... 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-5f55f95d-09c9-41c1-9f30-4b97e184bffb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk [0.039848s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable [0.038584s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated [0.054856s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_targets_post_observer [0.201652s] ... 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-021d5cf7-8cee-41a7-a14f-75b9a30a5961
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_356_node_inventory_get_admin [0.165798s] ... 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-fc3bdd97-9ea6-44bd-b3fc-28bd55d965b3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.051901s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_545_runbooks_post_admin [0.211909s] ... 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/b44ba739-3b7a-4a52-8067-c5410fba2924
Openstack-Request-Id: req-9da55b28-6d4a-4f88-84ea-42a98ad75abf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "b44ba739-3b7a-4a52-8067-c5410fba2924", "created_at": "2025-06-04T21:52:46.831777+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/b44ba739-3b7a-4a52-8067-c5410fba2924", "rel": "self"}, {"href": "http://localhost/runbooks/b44ba739-3b7a-4a52-8067-c5410fba2924", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.089192s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_admin [0.183734s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/ea9bbf70-8b6e-49a4-8cc4-6d9edff5d0e5 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-677beb23-6dda-4495-875b-c5271b920022
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target ea9bbf70-8b6e-49a4-8cc4-6d9edff5d0e5 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_357_node_inventory_get_reader [0.171827s] ... 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-44a7e5a8-2620-466c-844b-c7bb3f7dacd1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_546_runbooks_post_manager [0.183389s] ... 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/a1751b65-7d14-4461-a148-c36278f02174
Openstack-Request-Id: req-706ac4eb-323e-416d-b785-5d3ae2183ef2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "a1751b65-7d14-4461-a148-c36278f02174", "created_at": "2025-06-04T21:52:47.014739+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/a1751b65-7d14-4461-a148-c36278f02174", "rel": "self"}, {"href": "http://localhost/runbooks/a1751b65-7d14-4461-a148-c36278f02174", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.191430s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_member [0.178247s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/956a8987-2465-417a-b7e1-d7a6803d4b03 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-c4e9d5e9-50d4-410f-aa0c-8bb72d9144a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 956a8987-2465-417a-b7e1-d7a6803d4b03 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_358_node_history_get_entry_service [0.174691s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9de7bc15-6e11-49f7-9cbc-3b8d6bd9469d WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-92e6e5c6-9b59-42a6-bad0-68305eb0e59e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9de7bc15-6e11-49f7-9cbc-3b8d6bd9469d", "created_at": "2025-06-04T21:52:47.092873+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/9de7bc15-6e11-49f7-9cbc-3b8d6bd9469d", "rel": "self"}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_547_service_post_runbook [0.202110s] ... 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/275b08b5-3bed-4e97-aea7-22ac688a96db
Openstack-Request-Id: req-f38cbee0-a940-4711-aadb-770e9eeedfef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "275b08b5-3bed-4e97-aea7-22ac688a96db", "created_at": "2025-06-04T21:52:47.226697+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/275b08b5-3bed-4e97-aea7-22ac688a96db", "rel": "self"}, {"href": "http://localhost/runbooks/275b08b5-3bed-4e97-aea7-22ac688a96db", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_359_shard_get_shards [0.163904s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/shards WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e50cc461-b5d6-4e86-966d-9343d4a8bf2f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"shards": [{"name": "None", "count": 3}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_get_observer [0.175678s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/volume/targets/db229242-6dc8-45d2-bea7-89c8c8d960c7 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-9430d8cb-f0eb-4da0-add5-bccf14f493b7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target db229242-6dc8-45d2-bea7-89c8c8d960c7 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.280682s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_548_third_party_admin_post_runbook [0.210492s] ... 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/8548925a-11df-4c8a-8c7a-7c6909293969
Openstack-Request-Id: req-d0f6c596-8be6-4d59-a8dd-1a63dbacd830
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "8548925a-11df-4c8a-8c7a-7c6909293969", "created_at": "2025-06-04T21:52:47.438900+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/8548925a-11df-4c8a-8c7a-7c6909293969", "rel": "self"}, {"href": "http://localhost/runbooks/8548925a-11df-4c8a-8c7a-7c6909293969", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_admin [0.195736s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/cc94a897-33aa-430c-8a8e-e732f0b561c8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-93938074-2399-4cec-98b5-d84dd8c52767
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target cc94a897-33aa-430c-8a8e-e732f0b561c8 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.223685s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_360_shard_patch_set_node_shard [0.319634s] ... 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-a91072aa-14e4-4b04-8a8b-4d3ba768995f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_549_runbooks_post_public_admin [0.197837s] ... 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-59b25d93-0a0f-49e9-b433-492d5ab9ad10
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_member [0.189654s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/ec6b1a92-1806-477b-9edb-f3230d88895d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8333f699-46ad-4108-be2d-83800147839f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target ec6b1a92-1806-477b-9edb-f3230d88895d could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.200718s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_550_runbooks_post_public_manager [0.206375s] ... 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-f08401a4-a7b1-4383-9912-39da5cf076d9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_361_shard_patch_set_node_shard_disallowed [0.226967s] ... 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-c85bfdb7-4c07-48b8-827d-1491ad7b165a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_patch_observer [0.185262s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/volume/targets/e88c524e-246e-4d5f-b371-162f43b999b3 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d6de1f9b-e182-4a86-9a87-f08f4d7636c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target e88c524e-246e-4d5f-b371-162f43b999b3 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.187448s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_551_runbooks_post_public_service [0.224831s] ... 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-d3bf9f8a-6598-4a90-8ecf-a1ce892145d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_admin [0.205889s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/d9382f3b-cd78-4e2a-a9c6-71116a996b2b GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-4ebfc3f1-4baa-4baf-a99a-db3f36d566ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target d9382f3b-cd78-4e2a-a9c6-71116a996b2b could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_362_parent_node_patch_by_admin [0.391557s] ... 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-57030074-3374-4b03-b594-370052115889
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_552_runbooks_patch_admin [0.193349s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/dd224472-9522-4c4f-a253-60466589897e WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e19d60c7-6d7f-4199-be03-a18e83c916a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "dd224472-9522-4c4f-a253-60466589897e", "created_at": "2025-06-04T21:52:48.160876+00:00", "updated_at": "2025-06-04T21:52:48.278256+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/dd224472-9522-4c4f-a253-60466589897e", "rel": "self"}, {"href": "http://localhost/runbooks/dd224472-9522-4c4f-a253-60466589897e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_member [0.265316s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/64ca03bb-f5e2-42bd-8282-c0ac81dc166c GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-643b52f2-690d-417c-9867-fcd92b205106
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 64ca03bb-f5e2-42bd-8282-c0ac81dc166c could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_553_runbooks_patch_manager [0.126736s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/7ea69238-234c-4d30-9e9c-a5cb749c16ae WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-8a2eda74-29ca-4872-9f7f-322e286023ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "7ea69238-234c-4d30-9e9c-a5cb749c16ae", "created_at": "2025-06-04T21:52:48.339626+00:00", "updated_at": "2025-06-04T21:52:48.404437+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7ea69238-234c-4d30-9e9c-a5cb749c16ae", "rel": "self"}, {"href": "http://localhost/runbooks/7ea69238-234c-4d30-9e9c-a5cb749c16ae", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_554_service_patch_runbook [0.110614s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/4282348c-b582-4d21-90df-4139ca3ccaf3 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-76375f0a-9e10-4c87-8aa4-70f1c80282ab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "4282348c-b582-4d21-90df-4139ca3ccaf3", "created_at": "2025-06-04T21:52:48.460217+00:00", "updated_at": "2025-06-04T21:52:48.517713+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4282348c-b582-4d21-90df-4139ca3ccaf3", "rel": "self"}, {"href": "http://localhost/runbooks/4282348c-b582-4d21-90df-4139ca3ccaf3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_555_project_admin_delete_runbook [0.128284s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/bbf090a3-8598-44bb-b1e4-9c8d51e2a8f6 GOT Response: 204 No Content
Openstack-Request-Id: req-52d1e81d-4db3-4817-a7e2-c0524cb29d8c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_volume_volume_target_id_delete_observer [0.273617s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/volume/targets/faa1c99a-5c52-4d1a-b5e1-bc5f416c8fd1 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-77a28700-3748-4dac-8490-a868f47f2739
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target faa1c99a-5c52-4d1a-b5e1-bc5f416c8fd1 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_363_parent_node_patch_by_member [0.411198s] ... 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-2b2cbcc7-fe15-49e5-af4e-01886e8d1e7e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.806190s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_556_project_manager_delete_runbook [0.165999s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/46aadc64-6bfd-4abf-998a-709bc342e81a GOT Response: 204 No Content
Openstack-Request-Id: req-08148a2d-781f-4046-bf9b-263b45a4461e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_admin [0.232937s] ... 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-aaa2b96a-b749-4b3c-a769-5262c96205d2
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track [0.125201s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_364_parent_node_patch_by_reader [0.270073s] ... 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-813d27ca-05b3-4f60-b3a1-8dd4689ed868
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_557_service_get_runbooks [0.175428s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1ab7d86d-b2db-44d3-9afa-ed7449d55565
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "77362702-0afc-434d-8426-8f4694c1a81a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/77362702-0afc-434d-8426-8f4694c1a81a", "rel": "self"}, {"href": "http://localhost/runbooks/77362702-0afc-434d-8426-8f4694c1a81a", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible [0.187145s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_member [0.244091s] ... 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-4aae2e12-3458-4e8f-a15b-2b33a947965f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_558_runbooks_project_admin [0.167329s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-75923f2d-6017-46c4-90f7-28987ad8ffde
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "033fb062-0eda-4858-a2a7-32535e5c896f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/033fb062-0eda-4858-a2a7-32535e5c896f", "rel": "self"}, {"href": "http://localhost/runbooks/033fb062-0eda-4858-a2a7-32535e5c896f", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config [0.110343s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_365_nodes_firmware_component_get_admin [0.302229s] ... 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-731369f6-0a68-4326-aca3-63132edfa27a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"firmware": [{"created_at": "2025-06-04T21:52:49.125768+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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug [0.181145s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_get_observer [0.252835s] ... 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-2b5a45fe-92bf-47bc-8613-4b682749c9c6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_366_nodes_firmware_component_get_member [0.271210s] ... 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-c82dcad4-db40-41c3-8188-53bc103a659f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"firmware": [{"created_at": "2025-06-04T21:52:49.429407+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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.188534s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_admin [0.268240s] ... 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-80162e2c-26c8-403f-b801-28f4c119b63b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.163833s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_acl.TestRBACScopedRequests.test_system_scoped_367_nodes_firmware_component_get_reader [0.286406s] ... 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-d3f08f4d-c733-4784-ab7e-614f48018b2d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"firmware": [{"created_at": "2025-06-04T21:52:49.705813+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.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb [0.150867s] ... ok
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.test_acl.TestRBACProjectScoped.test_project_scoped_559_runbooks_runbook_id_get_project_admin [0.734459s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/1606040f-c3ec-4665-8128-c7d3343b4de4 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-935c6826-e642-4112-a4c3-06630e202ab1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "1606040f-c3ec-4665-8128-c7d3343b4de4", "created_at": "2025-06-04T21:52:49.773834+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/1606040f-c3ec-4665-8128-c7d3343b4de4", "rel": "self"}, {"href": "http://localhost/runbooks/1606040f-c3ec-4665-8128-c7d3343b4de4", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_member [0.270336s] ... 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-380eed4f-cdf2-45f5-a249-cf06b4088078
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso [0.091980s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_368_runbooks_post_admin [0.243981s] ... 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/cb1ee2ea-5db1-43a9-a998-ac8f70182ba5
Openstack-Request-Id: req-6ffce003-a1be-4d7c-ba1b-51f7a6509b8d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "cb1ee2ea-5db1-43a9-a998-ac8f70182ba5", "created_at": "2025-06-04T21:52:50.038969+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cb1ee2ea-5db1-43a9-a998-ac8f70182ba5", "rel": "self"}, {"href": "http://localhost/runbooks/cb1ee2ea-5db1-43a9-a998-ac8f70182ba5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_connectors_get_observer [0.175395s] ... 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-23ef7afb-c9ce-44fc-aed1-02209f4c231a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor [0.158718s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_560_project_admin_patch_runbook [0.250166s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/0a8eb94a-bb46-4617-b3e5-c4fb4cd179da WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-6f83abbb-6920-437a-948a-7d910230eea5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "0a8eb94a-bb46-4617-b3e5-c4fb4cd179da", "created_at": "2025-06-04T21:52:49.986528+00:00", "updated_at": "2025-06-04T21:52:50.116687+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0a8eb94a-bb46-4617-b3e5-c4fb4cd179da", "rel": "self"}, {"href": "http://localhost/runbooks/0a8eb94a-bb46-4617-b3e5-c4fb4cd179da", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_369_runbooks_post_member [0.184200s] ... 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/af933fd5-65b4-478f-a8e0-8dccb5530dff
Openstack-Request-Id: req-e0641db4-f3bd-4df2-9290-d34649a597b9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "af933fd5-65b4-478f-a8e0-8dccb5530dff", "created_at": "2025-06-04T21:52:50.216330+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/af933fd5-65b4-478f-a8e0-8dccb5530dff", "rel": "self"}, {"href": "http://localhost/runbooks/af933fd5-65b4-478f-a8e0-8dccb5530dff", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_admin [0.157842s] ... 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-ac74d3a8-6f8c-4836-8448-735e81c049ae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection [0.174322s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_561_runbooks_project_manager [0.283534s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c57aa372-c9a8-4cde-ad0f-ce9b837f6450
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "01594cdc-3d99-47c4-a918-7a86571adbcf", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/01594cdc-3d99-47c4-a918-7a86571adbcf", "rel": "self"}, {"href": "http://localhost/runbooks/01594cdc-3d99-47c4-a918-7a86571adbcf", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing [0.129264s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_370_runbooks_post_reader [0.245543s] ... 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-4b2eed68-b177-4921-ba51-fc242943270b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk [0.101478s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_member [0.250646s] ... 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-2df97a8a-1907-412e-98a5-67ed6e5112ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local [0.088956s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_562_runbooks_runbook_id_get_project_manager [0.235673s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/48d9a320-980b-4dc0-99c3-0903e5a5c195 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-1dd7d0b7-9a6c-4023-85af-ec83d7ecea06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "48d9a320-980b-4dc0-99c3-0903e5a5c195", "created_at": "2025-06-04T21:52:50.554050+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/48d9a320-980b-4dc0-99c3-0903e5a5c195", "rel": "self"}, {"href": "http://localhost/runbooks/48d9a320-980b-4dc0-99c3-0903e5a5c195", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.078676s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup [0.065011s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_nodes_volume_targets_get_observer [0.246555s] ... 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-67850f4a-812b-4021-af59-c46cfdb086f8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged [0.056142s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails [0.081667s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file [0.068468s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_563_project_manager_patch_runbook [0.351037s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/7ac53b53-650b-4f7b-a5e4-4bc98e6c0ab5 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-c4a949a9-cc93-44e5-aff7-104cbc8bb877
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "7ac53b53-650b-4f7b-a5e4-4bc98e6c0ab5", "created_at": "2025-06-04T21:52:50.801666+00:00", "updated_at": "2025-06-04T21:52:51.010857+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/7ac53b53-650b-4f7b-a5e4-4bc98e6c0ab5", "rel": "self"}, {"href": "http://localhost/runbooks/7ac53b53-650b-4f7b-a5e4-4bc98e6c0ab5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_admin [0.240124s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-db4a6ab4-9860-43fe-8dc9-02a2a61b94ef
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http [0.070603s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid [0.076242s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_swift [0.095091s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_member [0.235845s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-732030ed-047e-46b9-87c3-d1a32aa4b9cf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_564_runbooks_project_member [0.261213s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-3284072f-9c35-4ee1-9ae0-720932ac505b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "08f36868-4f57-45a4-af73-958744a711b0", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/08f36868-4f57-45a4-af73-958744a711b0", "rel": "self"}, {"href": "http://localhost/runbooks/08f36868-4f57-45a4-af73-958744a711b0", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url [0.060706s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http [0.056675s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile [0.062867s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_371_runbooks_get_admin [0.966968s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e54b4f2c-8a2f-4ee5-a248-e0f50ab04365
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "693c03ef-7dc1-481e-8ff8-cf33fd66700b", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/693c03ef-7dc1-481e-8ff8-cf33fd66700b", "rel": "self"}, {"href": "http://localhost/runbooks/693c03ef-7dc1-481e-8ff8-cf33fd66700b", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails [0.042809s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_get_observer [0.222045s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-204ded7e-1683-4ff6-afd4-469e99aff823
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external [0.057781s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_565_runbooks_runbook_id_get_project_member [0.240844s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/e592693c-59f9-42a5-a604-abc4d9970775 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-2d1d0402-5a9b-4f2b-83ac-bc6a8f7850d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e592693c-59f9-42a5-a604-abc4d9970775", "created_at": "2025-06-04T21:52:51.395260+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/e592693c-59f9-42a5-a604-abc4d9970775", "rel": "self"}, {"href": "http://localhost/runbooks/e592693c-59f9-42a5-a604-abc4d9970775", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift [0.067199s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args [0.049731s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_372_runbooks_get_member [0.232087s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-ac92d4f7-4923-4e38-86b6-5e2749849174
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "5bec17bc-4adc-452b-a589-5ed99127e199", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/5bec17bc-4adc-452b-a589-5ed99127e199", "rel": "self"}, {"href": "http://localhost/runbooks/5bec17bc-4adc-452b-a589-5ed99127e199", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing [0.063559s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_admin [0.219212s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-8e429db4-b2a6-4fd3-be7f-8467eb3ff9ba
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string [0.055335s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_566_runbooks_list_project_reader [0.250802s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-cf93868c-6d18-4b4b-9755-0c06f4e16320
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "5581d15a-7f9b-4f60-8d49-4bd68532986d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/5581d15a-7f9b-4f60-8d49-4bd68532986d", "rel": "self"}, {"href": "http://localhost/runbooks/5581d15a-7f9b-4f60-8d49-4bd68532986d", "rel": "bookmark"}]}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list [0.046560s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_member [0.099811s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-405c5b8c-b46c-48a0-9ada-d60ce8782aae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known [0.053789s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key [0.057421s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_373_runbooks_get_reader [0.241648s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-44abd440-7039-4ef7-8578-ba55bd2ba7b8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": [{"uuid": "2ba1cda7-6cd2-49d8-8339-fdbc23e826a8", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/2ba1cda7-6cd2-49d8-8339-fdbc23e826a8", "rel": "self"}, {"href": "http://localhost/runbooks/2ba1cda7-6cd2-49d8-8339-fdbc23e826a8", "rel": "bookmark"}]}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_driver_name_get_observer [0.099353s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4a52a975-0cb9-4cb5-a56a-559f936645eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing [0.086081s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_admin [0.070857s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-4b7bf6c4-0568-414d-b162-0d3d0b5fe345
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_567_runbooks_runbook_id_get_project_reader [0.238522s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/590230a1-6aed-45b2-acfb-acce9014ccf7 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-707062fa-8e53-4756-bf15-5cdafd5a129c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "590230a1-6aed-45b2-acfb-acce9014ccf7", "created_at": "2025-06-04T21:52:51.890368+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/590230a1-6aed-45b2-acfb-acce9014ccf7", "rel": "self"}, {"href": "http://localhost/runbooks/590230a1-6aed-45b2-acfb-acce9014ccf7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string [0.098010s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_member [0.117815s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6157fbb8-22f9-4c50-a26d-0ff83d90ac05
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int [0.089616s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_374_runbooks_runbook_id_get_admin [0.282805s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/de4b9526-b822-4c93-8a03-95fc3c5f51b3 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d9feb063-4573-4378-af52-4d7a31cf6921
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "de4b9526-b822-4c93-8a03-95fc3c5f51b3", "created_at": "2025-06-04T21:52:52.131169+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/de4b9526-b822-4c93-8a03-95fc3c5f51b3", "rel": "self"}, {"href": "http://localhost/runbooks/de4b9526-b822-4c93-8a03-95fc3c5f51b3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum [0.065531s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_568_runbooks_list_third_party_admin [0.273153s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bc397a9f-a77a-4f7e-9684-dc52f0298bcd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"runbooks": []}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_properties_get_observer [0.174695s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-b49727d0-ab97-4c10-b308-2dddfc6c5631
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch [0.062817s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha256 [0.044604s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha512 [0.048095s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_375_runbooks_runbook_id_get_member [0.262586s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/4f4f8fcc-810f-4977-9c51-8657659a1990 WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-0ac41f51-7640-4392-86ee-5de3a468cc1f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "4f4f8fcc-810f-4977-9c51-8657659a1990", "created_at": "2025-06-04T21:52:52.411326+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4f4f8fcc-810f-4977-9c51-8657659a1990", "rel": "self"}, {"href": "http://localhost/runbooks/4f4f8fcc-810f-4977-9c51-8657659a1990", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_admin [0.175242s] ... 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-66b4a8dd-84ae-46a6-b5ad-f96807c4cc3e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none [0.175432s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_569_project_reader_cannot_post_runbook [0.295791s] ... 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-63aeb4a9-409d-4237-bd8b-aaa65ae2ac96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_member [0.178812s] ... 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-370f76c7-2012-4408-80c0-b75b626a6c8c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.097115s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_376_runbooks_runbook_id_get_reader [0.258238s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/runbooks/99e9cb36-0d98-4030-82d9-0e7bf2c389fe WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-f553cc01-cbee-4138-b1ca-41ff7eb291c4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "99e9cb36-0d98-4030-82d9-0e7bf2c389fe", "created_at": "2025-06-04T21:52:52.682189+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/99e9cb36-0d98-4030-82d9-0e7bf2c389fe", "rel": "self"}, {"href": "http://localhost/runbooks/99e9cb36-0d98-4030-82d9-0e7bf2c389fe", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs [0.078774s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_raid_logical_disk_properties_get_observer [0.158434s] ... 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-2b64b6b3-676b-46e2-8b8f-b8d96867c54d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_570_project_reader_cannot_patch_runbook [0.265509s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/fe2dc62f-995b-4472-84b9-49786de72151 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-877e3092-63a5-4769-9672-4d5d8df13a89
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu_arch [0.104794s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.123973s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_admin [0.174656s] ... 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-2b1ab9ee-bd3f-461a-9dd9-32439fb5ceee
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_377_runbooks_runbook_id_patch_admin [0.347496s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/9cf5aed5-15a8-4c99-9ec6-7aae7b902c4b WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5ddcadf0-e791-41e6-8bcb-bac65c44a0e7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "9cf5aed5-15a8-4c99-9ec6-7aae7b902c4b", "created_at": "2025-06-04T21:52:52.938357+00:00", "updated_at": "2025-06-04T21:52:53.050105+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/9cf5aed5-15a8-4c99-9ec6-7aae7b902c4b", "rel": "self"}, {"href": "http://localhost/runbooks/9cf5aed5-15a8-4c99-9ec6-7aae7b902c4b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_571_project_reader_cannot_set_runbook_owner [0.277185s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/9b7b3f84-1f12-40da-9710-7f0d744fbb8d WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e56be0b5-9c29-4d42-9e0b-7e7f8282d9cc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_378_runbooks_runbook_id_patch_member [0.300428s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/c7f16b71-9c52-4c42-b861-3c78257959a3 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-06d75615-9e84-4185-9877-d1183507504b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c7f16b71-9c52-4c42-b861-3c78257959a3", "created_at": "2025-06-04T21:52:53.257595+00:00", "updated_at": "2025-06-04T21:52:53.369163+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c7f16b71-9c52-4c42-b861-3c78257959a3", "rel": "self"}, {"href": "http://localhost/runbooks/c7f16b71-9c52-4c42-b861-3c78257959a3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_572_project_reader_cannot_set_runbook_public [0.250373s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/1876ad05-f77a-4757-aee8-437d4047f052 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-5c2fbf46-82ec-43d4-a64a-05438e10b0e9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_573_project_reader_cannot_delete_runbook [0.268361s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/41dc4c03-54d3-4252-87fb-a2983250a3c0 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-731adf82-b92c-4735-a12c-dad1522dbcf1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_379_runbooks_runbook_id_patch_reader [0.286340s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/959c8360-42e2-44de-b218-8c1b807f6800 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-df6301b4-e77b-4580-89f9-7f9b808951cf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.738247s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_member [0.766188s] ... 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-63dd009c-14d5-4ea5-b276-0a4d6d554a39
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_count [0.164071s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_methods_get_observer [0.156045s] ... 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-7145e904-01c9-4050-97d8-4dd11d9b9fb4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_574_project_member_cannot_post_runbook [0.284773s] ... 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-69c1b8ac-20f9-425d-9f36-9f105980a445
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_380_runbooks_runbook_id_patch_public_admin [0.335776s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/47eadca5-7c67-4671-b875-816f87fa7661 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-51aea7c5-30a3-419e-b2b7-1fa52cca6f75
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "47eadca5-7c67-4671-b875-816f87fa7661", "created_at": "2025-06-04T21:52:53.872515+00:00", "updated_at": "2025-06-04T21:52:53.988341+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/47eadca5-7c67-4671-b875-816f87fa7661", "rel": "self"}, {"href": "http://localhost/runbooks/47eadca5-7c67-4671-b875-816f87fa7661", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_frequency [0.126838s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_admin [0.181523s] ... 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-8fb36f7d-caea-4a89-b618-f36426e68b75
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_instruction_set [0.129039s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_575_project_member_cannot_patch_runbook [0.235656s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/b0a16b40-4c23-4ee7-aab0-437d9bf97494 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e0a48b94-ac0a-4d0b-b939-cbf01c0826e1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_member [0.152158s] ... 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-73696719-1c76-4d09-aa1a-ed96c86a1543
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_381_runbooks_runbook_id_patch_public_member [0.245812s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/c878ccf2-bd00-4292-ba6a-3e43a94063ef WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d147fbb1-04db-4efe-b0db-3992ad38b08c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "c878ccf2-bd00-4292-ba6a-3e43a94063ef", "created_at": "2025-06-04T21:52:54.181865+00:00", "updated_at": "2025-06-04T21:52:54.253247+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c878ccf2-bd00-4292-ba6a-3e43a94063ef", "rel": "self"}, {"href": "http://localhost/runbooks/c878ccf2-bd00-4292-ba6a-3e43a94063ef", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_model [0.142275s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_576_project_member_cannot_set_runbook_owner [0.183442s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/fd6a055b-32cb-4c5b-8bab-ef2f58f6dd3c WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-00edbe7f-e41a-403b-a24a-d4a021a320a1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_382_runbooks_runbook_id_patch_public_reader [0.165821s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/3b298f35-8f4c-424e-a697-aa5d952a5b19 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-b878b37e-bc3b-412f-85e0-873b695d5407
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_get_observer [0.167236s] ... 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-0706a323-737d-4a0c-a205-a88339ae9d1b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpus [0.135514s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_577_project_member_cannot_set_runbook_public [0.177409s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/9db5e4af-70be-440c-8c22-a289b905ef28 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0852c9ab-f668-473c-ac7c-222528b3fdd3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.121531s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_admin [0.172222s] ... 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-aa761c39-dfae-4ad7-80f1-4c4f9303c1e1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_383_runbooks_runbook_id_patch_owner_admin [0.257624s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/83332097-c82a-405f-a36d-b35e322ee5a1 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-5d9b9ffb-08ec-46e5-ac34-402c186a377e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "83332097-c82a-405f-a36d-b35e322ee5a1", "created_at": "2025-06-04T21:52:54.600445+00:00", "updated_at": "2025-06-04T21:52:54.666164+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/83332097-c82a-405f-a36d-b35e322ee5a1", "rel": "self"}, {"href": "http://localhost/runbooks/83332097-c82a-405f-a36d-b35e322ee5a1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.124976s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_578_project_member_cannot_delete_runbook [0.172814s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/95139493-720b-46e6-b5bb-5dc387ac62fc GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-63be5d42-93a2-4ccd-bc84-b097266cec19
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_member [0.161311s] ... 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-529dc2df-dbd6-4526-a35e-feadb1b10f01
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.160146s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_579_project_manager_cannot_set_runbook_owner [0.174968s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/052cac1c-1d13-4ebf-b5df-c842292fe653 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-73f3a0e9-d634-42fb-b89c-1b1348d74aa7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_post_observer [0.145994s] ... 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-84e4ec6f-4988-44fc-a394-e8e7228c4d41
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_384_runbooks_runbook_id_patch_owner_member [0.228658s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/e856f676-ac71-4a41-93ee-a78810e10803 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-09b1b7b6-7ef8-441e-a7ce-b51802cdaf15
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "e856f676-ac71-4a41-93ee-a78810e10803", "created_at": "2025-06-04T21:52:54.842072+00:00", "updated_at": "2025-06-04T21:52:54.907781+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e856f676-ac71-4a41-93ee-a78810e10803", "rel": "self"}, {"href": "http://localhost/runbooks/e856f676-ac71-4a41-93ee-a78810e10803", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage [0.189209s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_admin [0.153301s] ... 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-3b53af26-21cb-4c11-aac9-fabfd9fe20d7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_580_project_manager_cannot_set_runbook_public [0.189552s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/7cb739cf-5369-4807-a369-0b2fe69a56a0 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-9ca802d0-0bc8-4c6d-9617-bcc4be1a8915
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_385_runbooks_runbook_id_patch_owner_reader [0.183055s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/3aea4843-9a35-4bb0-bcf9-db5c20781477 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2ee1c056-933b-448e-9a7d-83ee29b3a43a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_member [0.157994s] ... 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-6fd0618f-7253-4e68-9eaa-68094362992d
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_581_project_admin_cannot_set_runbook_owner [0.173070s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/902ac1d1-5510-4180-9876-debe9c2c7795 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f4950eaf-5a0e-4dfe-9ad4-0e9e4ac0bf49
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage_and_storage [0.202457s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_386_runbooks_runbook_id_delete_admin [0.190517s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/775b7b6b-43af-4fc8-bbf4-147899dc099b GOT Response: 204 No Content
Openstack-Request-Id: req-77c53bf3-ff0b-4f58-a5d4-d48f74c98ddf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_put_observer [0.180964s] ... 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-6963e7ab-219e-4c37-88d5-1f40ec832856
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_storage [0.140560s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_582_project_admin_cannot_set_runbook_public [0.175110s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/556b4f3c-560f-4855-8c66-34c257d72dbe WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-de6d25f5-cea4-4fa0-ab97-bf60f019610a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_387_runbooks_runbook_id_delete_member [0.171563s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/827ec15f-a8d0-4be7-9543-5aa22a2859ba GOT Response: 204 No Content
Openstack-Request-Id: req-5e92aee7-0c20-43fb-b020-8044948ebc63
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_system_vendor [0.153780s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_388_runbooks_runbook_id_delete_reader [0.153158s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/runbooks/872d1e8d-d107-4ff6-a29c-537030771c5c GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-4f10d707-d990-4bcf-8238-0884b17f90dd
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_583_service_cannot_patch_runbook_owner [0.216463s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/de36bf11-d88e-4ed8-b3d6-f4892e9968c5 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-60261f37-9ca3-415b-994f-dda50a202d03
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.130963s] ... ok
{0} 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_389_runbooks_post_project_admin [0.215097s] ... 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/6a447d8d-5ebf-4461-9d5d-e31406ed374f
Openstack-Request-Id: req-29323dbf-15d6-4bec-9837-4cffad1b45c0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "6a447d8d-5ebf-4461-9d5d-e31406ed374f", "created_at": "2025-06-04T21:52:55.858451+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/6a447d8d-5ebf-4461-9d5d-e31406ed374f", "rel": "self"}, {"href": "http://localhost/runbooks/6a447d8d-5ebf-4461-9d5d-e31406ed374f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_584_service_cannot_patch_runbook_public [0.198573s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/73723bfe-f949-4150-aefa-f12fa6fc429b WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-112162c1-4cb7-4df5-b967-91337be15127
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_admin [0.179836s] ... 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-b2b170a9-5a8f-440b-b6dd-067de75ba54c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.205679s] ... ok
{3} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_390_public_runbooks_post_admin [0.171673s] ... 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/ccf1b881-08a7-429a-8517-4b298aaaac03
Openstack-Request-Id: req-084039fc-67df-4ea7-afee-c7f061252434
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"uuid": "ccf1b881-08a7-429a-8517-4b298aaaac03", "created_at": "2025-06-04T21:52:56.032541+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ccf1b881-08a7-429a-8517-4b298aaaac03", "rel": "self"}, {"href": "http://localhost/runbooks/ccf1b881-08a7-429a-8517-4b298aaaac03", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]}
{3} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg [0.066639s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_conf_update_pxe_disabled_false [0.165030s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_585_third_party_admin_cannot_patch_runbook_owner [0.235974s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/8ba0aab7-e18f-487e-95ee-71461371cd77 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-473d052a-ecb0-4a4e-afae-26065cf8beb4
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_member [0.199336s] ... 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-977b9c8f-e167-4430-8275-2c2d638aa7d5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types [0.047780s] ... ok
{3} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature [0.043608s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs [0.160413s] ... ok
{3} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.091675s] ... ok
{2} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_586_third_party_admin_cannot_patch_runbook_public [0.242795s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/runbooks/aebc22d3-d072-4f94-9d9e-94be20e59070 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-d3777563-390c-4ab0-8ea2-ad69f02dc258
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"}
{3} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.075337s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_get_observer [0.268557s] ... 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-f57bb374-7604-426f-a6dc-15f9308a8383
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac [0.132706s] ... ok
{3} ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.054326s] ... ok
{2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.063986s] ... ok
{3} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch [0.051495s] ... ok
{2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.093664s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs [0.146694s] ... ok
{3} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed [0.077022s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_admin [0.191365s] ... 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-bafb4667-63cd-4c61-bd6a-3c56c6f192ff
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_empty_response [0.061371s] ... ok
{2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.095064s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline [0.048875s] ... ok
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.082693s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-2d7fc612-b57b-49e6-88f9-5f5c03ff7b8e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled [0.141206s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline_no_file [0.049238s] ... ok
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_nomatch_line [0.055612s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_member [0.185644s] ... 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-c55070f1-fd1f-4a32-85c5-e01bb8aeaf85
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.085394s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-12aef0f3-4ab8-4e02-8813-1ff17d63a9b5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_one_line [0.053718s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled [0.128293s] ... ok
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.048933s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-27d7f0ca-73f7-4d14-a805-cc35e3699e4b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.049338s] ... ok
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.065823s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-4f3e264d-8207-4100-aaf7-1111d75a0af6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n   **args)\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n   result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.048797s] ... ok
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.062477s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-f3366c17-a356-42e3-aad3-02ed347f0745
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.062408s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation [0.149204s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_nodes_bios_bios_setting_get_observer [0.216157s] ... 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-1381d2cd-84d2-4f67-ab53-985ed74c74ca
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.063356s] ... ok
{1} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.071420s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_admin [0.162131s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e68b6de5-5b51-4f53-a63b-6d3dd58670eb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue [0.116698s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_242_conductors_get_member [0.158323s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-caab1a27-b9e1-41ca-9cbb-613aeb6f88ac
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up [0.151011s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_243_conductors_get_observer [0.184038s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-fdfee1d8-e63c-4d39-b3ee-119145519ebe
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.550807s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-1ddbc7af-4ac1-4d2e-9e1a-54b0c6858e8e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"}
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.065867s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-164a412d-5071-4ae5-a8a6-e75acc2dca2f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n   **args)\\n  File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n   result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n  File \\\"/builddir/build/BUILD/ironic-29.1.0.dev159/ironic/api/method.py\\\", line 42, in callfunction\\n    result = f(self, *args, **kwargs)\\n\\n  File \\\"/builddir/build/BUILD/ironic-29.1.0.dev159/ironic/api/controllers/root.py\\\", line 44, in index\\n    return root()\\n\\n  File \\\"<string>\\\", 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\"}"}
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.056328s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6a97ac05-7624-490f-b160-ac0db184ef95
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_admin [0.178850s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-545cb936-5b95-4799-aa22-b4201f7e32ae
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.057633s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-d78b96af-f1a0-4bfa-abc6-4e0f43e04e0a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.060239s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-b57eb2b1-2fd8-4353-b612-c6d9de1cda7b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_member [0.133433s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-f52948b5-34d3-4d4d-af67-1a9d9212d592
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.075220s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-a7ff0b64-9473-4c7b-b7f3-c5328a8b80af
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n  File \\\"/builddir/build/BUILD/ironic-29.1.0.dev159/ironic/api/method.py\\\", line 42, in callfunction\\n    result = f(self, *args, **kwargs)\\n\\n  File \\\"/builddir/build/BUILD/ironic-29.1.0.dev159/ironic/api/controllers/root.py\\\", line 44, in index\\n    return root()\\n\\n  File \\\"<string>\\\", 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\"}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_246_conductors_hostname_get_observer [0.080727s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-c7477a2b-b038-4750-a710-5cb65dec87db
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.088775s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_247_allocations_post_admin [0.078623s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-22e5ef56-3761-4a14-9713-6d8349fa429e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.063029s] ... ok
{2} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.061544s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-4bab1c09-996b-408c-9685-5c46073a9c20
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "versions": [{"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}]}
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.723126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.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.common.test_glance_service.TestGlanceImageService.test_download_with_retries [1.067032s] ... ok
{2} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.077431s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-bf4b8210-5cde-4c65-bc07-c311ce5cd101
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "versions": [{"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}]}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.069185s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_post_observer [0.102564s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-84b56f9c-50bd-4d94-ac89-e427c97ff835
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"}
{2} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.057425s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET / WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-7016b266-a282-40aa-884b-803efb33f0e5
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}]}
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.180969s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.087010s] ... ok
{2} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors [0.074979s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/foo WITH {} GOT Response: 404 Not Found
Content-Type: application/json
{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_admin [0.093299s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-38cef2d8-553b-4fa1-8fd7-117e5096e62e
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.080683s] ... ok
{2} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.075052s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/ GOT Response: 405 Method Not Allowed
Content-Type: application/json
Openstack-Request-Id: req-43740b22-f1c5-4bea-844a-9bc2384f177a
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The server could not comply with the request since it is either malformed or otherwise incorrect.\", \"debuginfo\": null}"}
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_member [0.091629s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-de985e45-2065-4c75-994c-195cc31e9525
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_disable_power_off [0.128311s] ... ok
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_args.ValidateDictTest.test_dict_valid [0.059311s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.081379s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_252_allocations_get_observer [0.080836s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-56535bf0-8ab1-4c4c-9f15-7cbce3012406
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name [0.067125s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_access_via_auth_token_enabled [0.069557s] ... ok
{2} ironic.tests.unit.common.test_args.ValidateTypesTest.test_types [0.036846s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.136863s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_glance_service.TestIsImageAvailable.test_allow_admin_if_config_enabled [0.075693s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_admin [0.124637s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/720b90fe-274e-4a67-8a31-2ac41f6fa7af WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-94165c4a-fcef-4034-875e-a8f4fed09acf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 720b90fe-274e-4a67-8a31-2ac41f6fa7af could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_community_image [0.073610s] ... ok
{2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes [0.124297s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTestCase.test_agent_rescue_power_on [0.158511s] ... ok
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_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.067438s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_glance_service.TestIsImageAvailable.test_allow_private_image_owned_by_conductor [0.102725s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_member [0.173368s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/73705fa4-39ea-42b8-a5fa-07fd0677c52c WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8246c30c-baaf-44cd-abcd-591b9c3182d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 73705fa4-39ea-42b8-a5fa-07fd0677c52c could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.092541s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_glance_service.TestIsImageAvailable.test_allow_public_image [0.086066s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_get_observer [0.111709s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/allocations/c52a93fb-825e-4c38-a4c2-f308b1fad09e WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-abce6092-fb38-4526-93a5-fed1e8f58f93
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation c52a93fb-825e-4c38-a4c2-f308b1fad09e could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate [0.149739s] ... ok
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_cinder.TestCinderActions.test_attach_volumes_conn_init_failure [0.109756s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_glance_service.TestIsImageAvailable.test_allow_shared_image_if_member [0.102723s] ... ok
{3} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_deny_private_image_different_owner [0.070566s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.146077s] ... ok
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_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.125244s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_admin [0.192251s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/16c1cd0f-a098-45e6-a261-9d044fe1197f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-3edf8eb4-3b9e-48f2-9de8-0b615a3b5bab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 16c1cd0f-a098-45e6-a261-9d044fe1197f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror [0.081720s] ... ok
{2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.066088s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror [0.088021s] ... ok
{2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.052110s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.166514s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_member [0.127137s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/ceada1ba-54a3-42b8-9538-869287eec102 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8053ae6f-4288-47cd-888e-eb6c7e64c528
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ceada1ba-54a3-42b8-9538-869287eec102 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.063958s] ... ok
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_cinder.TestCinderActions.test_detach_volumes [0.048997s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_patch_observer [0.127312s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/allocations/ed345bfb-534b-4b34-b04e-d96cddfbb90b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2fa2a447-606b-4ad0-9505-a54034d0ee5c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ed345bfb-534b-4b34-b04e-d96cddfbb90b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.054528s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.216394s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_admin [0.096947s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/5a82e737-592e-4325-9623-3db185b83b7b GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-2464b697-4e56-4e6f-bd8f-3bfcc54ed5f6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5a82e737-592e-4325-9623-3db185b83b7b could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_conn_init_failure_bad_request [0.076118s] ... ok
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_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.058406s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.180160s] ... ok
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_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.127721s] ... ok
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_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.108710s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.AgentRescueTestCase.test_agent_unrescue [0.141374s] ... ok
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_cinder.TestCinderActions.test_detach_volumes_one_detached [0.120472s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_member [0.471047s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/394002e7-8ae3-4465-93b4-37ba12e76e2f GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-a06eddd7-9192-44e4-81b2-a048f8e159f0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 394002e7-8ae3-4465-93b4-37ba12e76e2f could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror [0.739321s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_disable_power_off [0.203366s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_oserror [0.050800s] ... ok
{2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.124020s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_261_allocations_allocation_id_delete_observer [0.077710s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/allocations/ca4d1c43-dec8-474b-814e-34e11a6053e0 GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-d83d17a7-3c7a-467b-a556-4fe70b931175
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ca4d1c43-dec8-474b-814e-34e11a6053e0 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout [0.056270s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme [0.042817s] ... ok
{2} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.108986s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_admin [0.118476s] ... 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-19105b38-cc66-4165-9ca8-359b6201b175
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false [0.058535s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback [0.057877s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.204177s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_failed [0.055348s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.052108s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_member [0.101538s] ... 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-b2a0c4a5-7148-45a9-a5eb-08d3aebe8363
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_sucess [0.056385s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.055949s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path [0.047013s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.055002s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_264_nodes_allocation_get_observer [0.101617s] ... 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-68354ffb-db7b-4cab-bfa8-2f318edf54a3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true [0.055646s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.065280s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_power_on [0.221555s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_download_success_verify_true_connerror [0.056782s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.052895s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_admin [0.116718s] ... 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-48fbf8eb-bd07-4fb7-a4f8-9e64d9f90c3b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_none [0.048095s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface [0.052601s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_success [0.065837s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.050387s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_member [0.113751s] ... 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-b0bcea56-e2fb-4909-bc2a-73d6961f2f09
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_handles_exceptions [0.047968s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.052109s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success [0.048222s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_267_nodes_allocation_delete_observer [0.076941s] ... 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-cb7c79a2-bc4a-4d4a-8908-f9d6a2729db1
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.050159s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.231674s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_get_success_verify_false [0.048406s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.087182s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.059261s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_admin [0.106378s] ... 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-1d6163ea-793d-4bae-bafc-0135d807ae8b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed [0.061512s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.SwitchToTenantNetworkTest.test_switch_to_tenant_network [0.159333s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_member [0.092222s] ... 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-bdbb0fc6-f83f-4e63-91ca-7f51bc67b3cc
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled [0.051692s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.119232s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.073798s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.034248s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_post_observer [0.110595s] ... 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-48739bf3-fc00-4bab-9e59-0e113539a4e0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.151971s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_show_rfc_850 [0.051793s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout [0.064822s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_admin [0.158862s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-1e0c31e8-7ae3-4ec2-b0e2-06cc15624c4f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.052680s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.153522s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.SwitchToTenantNetworkTest.test_switch_to_tenant_network_fails [0.350849s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme [0.058462s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden [0.048621s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_member [0.149884s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-2902bbdb-a15b-4dfb-8862-805dc44eb926
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size [0.099600s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected [0.045390s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.142301s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_invalid_basic_auth [0.053062s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_valid_basic_auth [0.071944s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail [0.138418s] ... ok
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_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults [0.148246s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_273_deploy_templates_get_observer [0.199247s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cdf6490a-e79f-455f-a72d-4051403bc2c8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error [0.076377s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error [0.074143s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.189033s] ... ok
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_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.143911s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_validate_href_verify_false [0.087717s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error [0.050542s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override [0.110878s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error [0.039609s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_admin [0.301488s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/fd95a682-bc18-44cb-8fc5-ebe15c0343b3 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-cad964ae-cadf-4bde-a298-ef2ed41f6b96
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true [0.066355s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.205563s] ... ok
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_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.093023s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error [0.054768s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.062540s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path [0.045703s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.049750s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format [0.042151s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.059142s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_password [0.057216s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.198594s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_user [0.045450s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.056707s] ... ok
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_password [0.041515s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.058059s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_member [0.348123s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/ff8b167d-cf57-4253-a257-5587bd154f4e WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-e710e6b2-939b-4bd8-982d-28b149c6297f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_user [0.055860s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.069267s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.053744s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 [0.188600s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_images.FsImageTestCase.test__generate_grub_cfg [0.053974s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_get_observer [0.188367s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/deploy_templates/81dddeb8-9227-4436-bb1b-6cfba560be79 WITH {} GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-0b046162-3930-4c31-a3e6-39f53a7df8d0
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.082274s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw [0.142953s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_images.FsImageTestCase.test__get_deploy_iso_files [0.054067s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg [0.065351s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError [0.057225s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.155768s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_admin [0.211100s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/2a6b54fb-7100-46bc-acea-c8431041c8c4 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-38292343-d4cd-4b0c-a94e-dddd845b5a36
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg [0.067380s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image [0.097724s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.069361s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source [0.098523s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_member [0.180718s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/22a3c4dd-e7b1-4e91-b782-84b9958549b0 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-686e597d-b2b8-4be6-906b-39f6558d6c22
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.076227s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 [0.084643s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.081696s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.100268s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.093867s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.714594s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_patch_observer [0.240308s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    PATCH /v1/deploy_templates/eb28e44f-84db-4d6c-83e1-6386c096ebd5 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-656e2222-b74a-4302-adcb-72386432184f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.086265s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file [0.106928s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.096199s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.090595s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http [0.096101s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.099906s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node [0.085507s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso [0.102439s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.102797s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_admin [0.252350s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/ad520f38-b59c-47cf-a80d-af05e143aa02 GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-3fff8dc9-b09e-4fba-9f7a-78ac1e4f5b63
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image [0.095559s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.102505s] ... ok
{2} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.105857s] ... ok
{2} ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state [0.064733s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics [0.101797s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails [0.125633s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_member [0.214416s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/f8f1b3b3-e973-423f-b442-8edd05a586ab GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-390f4fd2-1315-4927-97f6-f2a4ac418c36
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.053372s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state [0.100962s] ... ok
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.051712s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails [0.133795s] ... ok
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state [0.039445s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown [0.087060s] ... ok
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.040140s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_deploy_templates_deploy_template_id_delete_observer [0.156110s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    DELETE /v1/deploy_templates/68eb226a-eb4d-467c-88e1-cf41b9855f5e GOT Response: 403 Forbidden
Content-Type: application/json
Openstack-Request-Id: req-6343baee-117a-4471-a1b9-a3858b6b4eb7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_process_event [0.042140s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.085547s] ... ok
{2} ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable [0.042470s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.101709s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_283_chassis_post_admin [0.153770s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-e6b60cf3-4af4-41db-aa46-60c8cea6d22c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot [0.218150s] ... ok
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.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.079812s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_member [0.154019s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-61b8cc9c-3ec5-4123-9290-a9a5c89bfc66
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.086571s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state [0.192011s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.108771s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_post_observer [0.163565s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-f4b3f1a5-e0fa-479d-9d8f-52bac3ce2ab9
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance [0.186004s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_286_chassis_get_admin [0.153920s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-68112836-a723-43ed-8d74-719d4fc0bc00
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout [0.243460s] ... ok
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.TestRBACScoped.test_scoped_canary_287_chassis_get_member [0.298053s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-c49eff43-b6b6-485d-8623-d2125f20643c
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate [0.126262s] ... ok
{2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.966486s] ... ok
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails [0.142148s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_get_observer [0.244117s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-fff9cfc7-3493-4838-a907-08f97c68ec26
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track [0.116464s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.199783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_admin [0.292525s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-a549b76d-4709-4f1b-a8c3-3ab668558073
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files [1.073296s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf [0.113405s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.116125s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.158389s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.071405s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.084287s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_member [0.358428s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-426f13bb-49e8-4e99-bbf7-bdd8dfe16dfb
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.147817s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.069787s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.079989s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.093805s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.195304s] ... ok
{3} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.124718s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.117221s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_detail_get_observer [0.378960s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6ede69a0-4deb-4609-9690-c135c418169b
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [1.184663s] ... ok
{3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.132029s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.159039s] ... ok
{3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.116419s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.094257s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.218428s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_admin [0.363537s] ... 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-784a583b-7e85-4d5a-9405-05b2539b6935
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.162486s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_member [0.302938s] ... 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-d0ba3e77-3d98-4897-9a44-1e8cdedd63d3
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.242723s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_get_observer [0.170247s] ... 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-8748ee0f-aa49-4b3f-8065-2c84438b39d6
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.232082s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track [0.646818s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_admin [0.201430s] ... 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-3ff75ddd-2c7c-4f40-9f6c-8912968ff631
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.155540s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.087895s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.067030s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.077322s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.062294s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_service [0.066799s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.067188s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.079120s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_member [0.285503s] ... 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-505a79f9-184e-4ff2-a9e0-0ff8890f3e06
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.052895s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.115101s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off [0.074924s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off_and_fast_track [0.062930s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.132733s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.100119s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.060807s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.161964s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service [0.089893s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.137584s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_disable_power_off [0.064064s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service_service_error [0.073613s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.064007s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.032460s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set [0.032265s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode [0.041381s] ... ok
{3} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.295362s] ... ok
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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode [0.052441s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.029490s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.072884s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.030088s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.033980s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.025603s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_patch_observer [0.915409s] ... 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-37193fe0-d012-4aee-ab9d-18cee6047c0f
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.021435s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.098024s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.029062s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.032708s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.034871s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.099965s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.019869s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.020092s] ... ok
{2} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [2.495577s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.134062s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda [0.111764s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda_img_checked [0.078741s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.099788s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_admin [0.371175s] ... 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-f6eb4724-d31b-440a-8d74-bbfcbf0a5029
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.128644s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.146975s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l2 [0.094488s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image_checked [0.138588s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l3 [0.090382s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_member [0.310682s] ... 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-5e23bbef-919c-4324-ad5b-94a75876f1ea
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.084263s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.097460s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_checked [0.134555s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.086019s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.102089s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_chassis_chassis_id_delete_observer [0.289650s] ... 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-8dda9abd-6a6e-468b-bc2a-b99f4e139971
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found [0.140721s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.055094s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment [0.104638s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet [0.081836s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_checked [0.086787s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_not_checked [0.067200s] ... ok
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_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [0.997698s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.000122s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.089507s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_admin [0.283483s] ... 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-f72a06bf-1138-4d42-8319-c0c90a192c60
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_part_img_checked [0.085027s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.074267s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.106421s] ... ok
{3} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.054636s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.072023s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_oci_registry.OciClientRequestTestCase.test__resolve_tag [0.042319s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.085045s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_member [0.170781s] ... 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-57fc1ebf-d799-46fa-a84d-2ed531df73ab
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_local_download [0.086401s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_oci_registry.OciClientRequestTestCase.test__resolve_tag_auth_needed [0.053200s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.092838s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_follows_links [0.055670s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_if_not_found [0.052057s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.073400s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download [0.106495s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestRBACScoped.test_scoped_canary_303_node_history_get_observer [0.181831s] ... 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-2741e86d-7989-4915-960e-d684b322c308
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_temp_failure [0.071922s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download_rebuild [0.069473s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_oci_registry.OciClientRequestTestCase.test_authenticate_401_bad_header [0.054886s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url [0.125046s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path [0.093066s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth [0.068348s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_admin [0.196910s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/0fd5e49a-8f34-41e7-8715-1ebe68a1db03 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-6309d01d-94a3-4cce-b47d-7cb55cdacf05
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth_no_username [0.046007s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.108758s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect [0.069386s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_oci_registry.OciClientRequestTestCase.test_authenticate_401_bearer_auth [0.056316s] ... ok
{1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect_not_path [0.073390s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_oci_registry.OciClientRequestTestCase.test_authenticate_401_fallback_to_service_config [0.055950s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix [0.130771s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_member [0.169197s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/bf853a7d-ce48-45dc-87ad-70941e9723ec WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-45aaae09-99ef-4129-b763-ed2e1e2245bf
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc [0.082079s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_no_header [0.057512s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_noop [0.051454s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac [0.083553s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore [0.123220s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest [0.072439s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_401 [0.064841s] ... ok
{0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_306_node_history_get_entry_observer [0.188857s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e4c74234-57ac-4b2d-81ca-dc676f603b90 WITH {} GOT Response: 404 Not Found
Content-Type: application/json
Openstack-Request-Id: req-8296c8cf-7de2-455b-854f-6904d970ebd7
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.99
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.121911s] ... ok
{0} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.053282s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_403 [0.074871s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.115702s] ... ok
{0} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.093831s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_404 [0.110580s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.108661s] ... ok
{0} ironic.tests.unit.api.test_method.TestExpose.test_exception [0.112678s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/ouch WITH {} GOT Response: 500 Internal Server Error
Content-Type: application/json
Openstack-Request-Id: req-6c67b48f-aed9-4762-885e-259907e01972
{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_500 [0.105507s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.152592s] ... ok
{0} ironic.tests.unit.api.test_method.TestExpose.test_expose [0.138060s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things WITH {'name': 'foo', 'flag': True} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-d25e724d-75ef-4f5b-a55d-412ae0275068
{"foo": true}
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_and_uuid [0.548922s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.100979s] ... ok
{0} ironic.tests.unit.api.test_method.TestExpose.test_expose_validation [0.102826s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things WITH {'name': 'foo', 'flag': 'truish'} GOT Response: 400 Bad Request
Content-Type: application/json
Openstack-Request-Id: req-c162f589-a620-4a20-ad9f-becef92c3874
{"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.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_not_found [0.086376s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_not_found [0.061497s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.143554s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_wrong_state [0.098415s] ... ok
{0} ironic.tests.unit.api.test_method.TestExpose.test_post_body [0.151335s] ... 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-3838d137-8c50-45f0-9e6d-507e07e2dfa0
{"three": "three", "four": "four", "five": "five"}
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_not_found [0.050507s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.130814s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_wrong_state [0.115334s] ... ok
{0} ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation [0.172830s] ... 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-612a1383-783a-4c2e-8c87-b775a717e8c8
{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"}
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs [0.064812s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.139488s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs_partial [0.052814s] ... ok
{0} ironic.tests.unit.api.test_method.TestExpose.test_response_204 [0.121379s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/no_content WITH {} GOT Response: 204 No Content
Openstack-Request-Id: req-fa71a6c6-4ac3-4cdb-86e7-1d6b34002830
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.121990s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_unknown_bmc_and_mac [0.107995s] ... ok
{0} ironic.tests.unit.api.test_method.TestExpose.test_response_content [0.107262s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/response_content WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-75251731-11d9-4e36-b45c-b421a43f1f37
"nothing"
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.070657s] ... ok
{0} ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status [0.055762s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/things/response_custom_status WITH {} GOT Response: 202 Accepted
Content-Type: application/json
Openstack-Request-Id: req-f9cde6fa-2842-462c-b51c-1c556d552d7d
"accepted"
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid [0.128912s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.099558s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_check [0.974130s] ... ok
{0} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated [0.098099s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-e6d3ee4a-7678-4e57-9e35-fa12bdcf05b8
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"chassis": []}
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_and_unknown_macs [0.092226s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_access_denied [0.060235s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.093159s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_not_found [0.046517s] ... ok
{0} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated [0.079414s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/chassis WITH {} GOT Response: 401 Unauthorized
Content-Type: application/json
Www-Authenticate: Basic realm="Baremetal API"
{"error":{"message":"Authorization required","code":401}}
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_wrong_state [0.077609s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_authorized [0.102705s] ... ok
{2} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.116350s] ... ok
{0} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated [0.091149s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    GET /v1/ WITH {} GOT Response: 200 OK
Content-Type: application/json
Openstack-Request-Id: req-20e51be1-9bc6-440c-b0f9-ccefb93dc706
X-Openstack-Ironic-Api-Maximum-Version: 1.99
X-Openstack-Ironic-Api-Minimum-Version: 1.1
X-Openstack-Ironic-Api-Version: 1.1
{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.99"}}
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_found [0.068155s] ... ok
{0} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.076626s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_temporaryfailure [0.052927s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_bmc_and_uuid [0.117573s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_with_tag [0.058223s] ... ok
{0} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.078769s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest [0.046662s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs [0.119036s] ... ok
{0} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.063039s] ... ok
{2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_all_conditions_fail [0.255031s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_oci_registry.OciClientRequestTestCase.test_get_manifest_auth_required [0.062610s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_bmc [0.082188s] ... ok
{0} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.076160s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_checksum_verifies [0.053046s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_access_denied [0.058793s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.064089s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    foo() migrated 15 of 15 objects.
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_uuid [0.082169s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_not_found [0.071000s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc [0.064599s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.082208s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 15 of 15 objects.
func2() migrated 20 of 20 objects.
{3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_temporary_failure [0.056000s] ... ok
{2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_ironic_exception [0.253902s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.080984s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 10 objects.
func2() migrated 0 of 0 objects.
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_and_unknown_mac [0.110014s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url [0.099280s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_resolved_by_macs [0.047252s] ... ok
{1} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_no_input [0.041784s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.101966s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 15 objects.
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url_adds_oci [0.077410s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.050732s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_client_init_make_session [0.048164s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.060160s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 10 objects.
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite [0.043932s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.031814s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_get_blob_url [0.079439s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.036419s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.095401s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    Error while running foo: bar.
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.047798s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url [0.086577s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.107033s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_exception [0.075813s] ... ok
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_digest [0.100536s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_first_call_to_address [0.042663s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.042919s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.115089s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    func1() migrated 10 of 10 objects.
func1() migrated 0 of 0 objects.
func2() migrated 0 of 0 objects.
{3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_tag [0.095287s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.060172s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_try_different_cipher_suite [0.030369s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.097541s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
Data migrations have completed.
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.049577s] ... ok
{3} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.105565s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_check_exit_code [0.060045s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_dual_bridging [0.038712s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.108335s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
Data migrations have completed.
{3} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.108390s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_empty_username [0.030703s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_ironic_retries [0.033803s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_port [0.029600s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.110674s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.117432s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_single_bridging [0.062570s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timeout [0.038442s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.090733s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Malformed option m1key1=value1
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.128648s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timing [0.057371s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.086454s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Malformed option m1.key1value1
{2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_no_rules [1.114516s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_timing [0.070562s] ... ok
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.117754s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.097182s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    "max-count" must be a positive value.
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_username [0.122693s] ... ok
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.105215s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.107292s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Data migrations have not completed. Please re-run.
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_str_password [0.104571s] ... ok
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.100641s] ... ok
{2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_some_conditions_pass [0.235586s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.061117s] ... ok
Captured stdout:
~~~~~~~~~~~~~~~~
    Running batches of 50 until migrations have been completed.
Data migrations have completed.
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.077017s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.072520s] ... ok
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.036154s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_with_numeric_password [0.138873s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.073180s] ... ok
{2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_success [0.168202s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.071778s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.099446s] ... ok
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.072448s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.122739s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.098252s] ... ok
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.067574s] ... ok
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.055668s] ... ok
{2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_always_mask [0.236922s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.104573s] ... ok
{0} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.114822s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    This is bad
{3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX [0.078691s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.094699s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and [0.097985s] ... ok
{3} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.078561s] ... ok
{3} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.047247s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean [0.065608s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.109452s] ... ok
{2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_never_mask [0.234814s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_args.ValidateDecoratorTest.test_decorated_args [0.070997s] ... ok
{3} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.093514s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs [0.051425s] ... ok
{3} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.048771s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.135644s] ... ok
{3} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.041152s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function [0.055290s] ... ok
{3} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.048098s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs [0.054159s] ... ok
{3} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled [0.045805s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.108832s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer [0.051980s] ... ok
{2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_sensitive_mask [0.265940s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestUtils.test_init_globals_notifications_enabled [0.099866s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address [0.074188s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.120459s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated [0.093041s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory [0.071476s] ... ok
{3} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.112216s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.115213s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated [0.076429s] ... ok
{3} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.062916s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role [0.122304s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object [0.061200s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.090800s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name [0.069059s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.060532s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_allowed_role [0.101521s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.087323s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or [0.071698s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ [0.047543s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_with_allowed_role [0.055562s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.040847s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure [0.035984s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.109364s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.056231s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo [0.032234s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic [0.044924s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled [0.068473s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic_not_authenticated [0.039064s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.044136s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests [0.029285s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context [0.028414s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.066722s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_mask_secrets [0.066706s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.035654s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.030309s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_found [0.048534s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post [0.039139s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.067588s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument [0.042951s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.057233s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_no_context [0.040770s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_no_deny_methods [0.035195s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.071888s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body [0.046704s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.070197s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_notification [0.035269s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_success [0.037862s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_success_no_result [0.037336s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.094168s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure [0.034686s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestSession.test_http_basic [0.043874s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.061176s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestSession.test_http_basic_deprecated [0.056608s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestSession.test_keystone [0.024382s] ... ok
{3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_wrap_ipv6 [0.059634s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_node_busy [0.803497s] ... ok
{2} ironic.tests.unit.common.test_json_rpc.TestSession.test_noauth [0.057392s] ... ok
{3} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.074246s] ... ok
{2} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_add_auth_opts [0.025221s] ... ok
{2} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_os_service_types_alias [0.024674s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string [0.991207s] ... ok
{2} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_resolve [0.030187s] ... ok
{3} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string [0.070491s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.113696s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list [0.047817s] ... ok
{2} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple [0.036172s] ... ok
{2} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple_https [0.038907s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args [0.056765s] ... ok
{1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_timeout [0.082357s] ... ok
{2} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_with_path_and_port [0.028172s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid [0.066831s] ... ok
{1} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods [0.051828s] ... ok
{1} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.041204s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name [0.050389s] ... ok
{2} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_failure [0.095430s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema [0.093655s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance [0.139828s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_args.ValidateSchemaTest.test_schema_needs_args [0.048108s] ... ok
{2} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_ok [0.164318s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs [0.088531s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.099198s] ... ok
{2} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_interfaces [0.153137s] ... ok
{0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed [0.106577s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.105788s] ... ok
{2} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_params [0.073924s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum [0.095589s] ... ok
{2} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_race [0.062337s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_glance [0.048478s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.160738s] ... ok
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_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.077993s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_http_url [0.071574s] ... ok
{3} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes [0.801952s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_https_url [0.053298s] ... ok
{2} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.111041s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_not_allowed [0.053096s] ... ok
{3} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs [0.060464s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha256 [0.050377s] ... ok
{3} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_label [0.052998s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.217724s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha512 [0.044151s] ... ok
{3} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unexpected_error [0.046772s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_timeouts [0.106354s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_no_checksum_file_url [0.081343s] ... ok
{3} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs [0.088748s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url [0.073564s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_http_boot_not_enabled [0.112662s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.101179s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_file [0.086856s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.094547s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TempFilesTestCase.test__check_dir_writable_not_writable [0.102030s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_string [0.077210s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.070317s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum [0.066430s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.144676s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TempFilesTestCase.test_check_dir_free_space_raises [0.067270s] ... ok
{0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum_invalid [0.051286s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.095991s] ... ok
{1} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.129632s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TempFilesTestCase.test_check_dir_ok [0.090267s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.076266s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.063881s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on [0.079694s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient [0.074880s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good [0.043718s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.077776s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers [0.049725s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.070367s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only [0.075715s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.073882s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir [0.056363s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.088165s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config [1.164748s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.077418s] ... ok
{3} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.057625s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off [0.089485s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.069415s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.148018s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset [0.080410s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.052548s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderClient.test__get_cinder_session [0.948872s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.058981s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.128025s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects [0.074271s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node [0.080343s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.057421s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [0.509936s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.077839s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.126006s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset [0.064564s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off [0.081636s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active [0.147438s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.075044s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off [0.070001s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch [0.157523s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.072602s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.130275s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset [0.088770s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off [0.064462s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node [0.148289s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on [0.086357s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.071864s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context [0.759984s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes [0.133184s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects [0.066278s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.058011s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_unassociated_node [0.148120s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on [0.105496s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.110801s] ... ok
{3} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_without_resource_class [0.151230s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.097284s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on [0.091552s] ... ok
{0} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_cinder_client_with_context [1.475885s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.244107s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.087092s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.070488s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.120120s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.078650s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.096294s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver [0.071771s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.093185s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.309220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.080329s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.079116s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.057928s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off [0.122320s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.052651s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.198275s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.136533s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.111810s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure [0.101809s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.216570s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_cannot_use_reserved [0.113933s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu [0.088698s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_no_reserved [0.088977s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.067001s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_default_is_flat [0.160907s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.072607s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.089100s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_reserved [0.039069s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.134786s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.087580s] ... ok
{0} ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint [0.075125s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.072224s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off [0.066015s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_exception.TestIronicException.test___init___invalid_kwarg [0.076803s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.248100s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise [0.050680s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on [0.085798s] ... ok
{0} ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable [0.060625s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off [0.077711s] ... ok
{0} ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable [0.076987s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.215260s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.078934s] ... ok
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.104370s] ... 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.093884s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.094409s] ... 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_base_manager.StartStopTestCase.test_del_host_with_mdns [0.201531s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [2.195780s] ... ok
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.115674s] ... 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.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful [0.106394s] ... ok
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.095167s] ... 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.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 [0.106139s] ... ok
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.096222s] ... 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.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.104151s] ... 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.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 [0.120274s] ... ok
{0} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.080015s] ... ok
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.068641s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.175528s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FileImageServiceTestCase.test_download_copy_fail [0.071188s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off [0.750425s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_image_service.FileImageServiceTestCase.test_download_hard_link [0.075264s] ... ok
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_symlink [0.073137s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.120387s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_image_service.FileImageServiceTestCase.test_show [0.072589s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.836288s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.287174s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FileImageServiceTestCase.test_validate_href [0.062265s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.089751s] ... ok
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_blocked_path [0.047606s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off [0.071248s] ... ok
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_empty_allowlist [0.054943s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [0.166051s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FileImageServiceTestCase.test_validate_href_in_allowlist [0.065650s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.108196s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.219590s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_image_service.FileImageServiceTestCase.test_validate_href_not_in_allowlist [0.061900s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.099755s] ... ok
{0} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.062992s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific [0.063676s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.204459s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.100488s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_base_manager.StartStopTestCase.test_start_dbapi_single_call [0.197443s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_bad_format [0.061673s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.103880s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_not_specific [0.084878s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.153799s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.061994s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.216485s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_download_direct_manifest_reference [0.098676s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on [0.072657s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.055651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.148234s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference_just_digest [0.090972s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.057985s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image [0.043992s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off [0.086386s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.231867s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_aarch64 [0.083864s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_bad_manifest [0.112997s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports_via_not_pxe [0.153641s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_local [0.052937s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_specific_digest [0.087052s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_show [0.066282s] ... ok
{0} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_validate_href [0.039001s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.263164s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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__hanlde_zstd_compression [0.085301s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression_disabled [0.080795s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom [0.048370s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default [0.061492s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.247395s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_converted_size_estimate_raw_smaller [0.054363s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.045223s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.043054s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_auth_data_checksum [0.036664s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.032672s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_combined_algo [0.032100s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_no_checksum_algo [0.039532s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.280760s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_with_checksum [0.044835s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_with_checksum_mismatch [0.044661s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay [1.084425s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [1.115136s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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()
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.039961s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.072226s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt [0.048917s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.228369s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_to_gpt_backward_compatibility [0.066232s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.235434s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.155398s] ... ok
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_neutron_port_data [0.076946s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 [0.080425s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.322811s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_images.IronicImagesTestCase.test_image_to_raw [0.408393s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_gpt_format [0.045016s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.184118s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_to_raw_already_iso [0.042348s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.028162s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks [0.182903s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_images.IronicImagesTestCase.test_image_to_raw_fails_safety_check [0.037291s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_permitted_format [0.035104s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.136288s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.038302s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled [0.045738s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.102998s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled_fails_to_convert [0.048781s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length [0.028188s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc [0.233811s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type [0.029695s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.112684s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.044878s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect [0.056336s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none [0.024105s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple [0.019385s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit [0.022561s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc_port [0.198398s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.155063s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_no_img_src [0.031333s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.029974s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type [0.043686s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.024070s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.035106s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image_oci [0.038089s] ... ok
{0} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.058393s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.224437s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestShallowMask.test_get_method_masked [0.080386s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.324649s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_inspection_rule.TestShallowMask.test_getitem_masked [0.100542s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.209660s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestShallowMask.test_getitem_not_masked [0.049927s] ... ok
{0} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_items_masked [0.038852s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.238861s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_inspection_rule.TestShallowMask.test_list_masking [0.078898s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.140580s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestShallowMask.test_modifying_dict [0.045384s] ... ok
{0} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_nested_dict_masking [0.077333s] ... ok
{0} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_set_mask_enabled [0.091217s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.175926s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces [0.258750s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_inspection_rule.TestShallowMask.test_values_masked [0.097653s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.179215s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error [0.114604s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base_manager.StartStopTestCase.test_start_without_jsonrpc_port_pined_version [0.228460s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.154815s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_get_configuration_empty [0.170648s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base_manager.StartStopTestCase.test_stop_clears_conductor_locks [0.222903s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.126852s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_get_configuration_http [0.124265s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_get_configuration_http_error [0.122165s] ... ok
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.165308s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.217012s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.094775s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth [0.126570s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.114777s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.086060s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json [0.115824s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded [0.115641s] ... ok
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_validate_port_info_flat_interface [0.164201s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.217369s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift [0.144638s] ... ok
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_validate_port_info_flat_interface_with_client_id [0.123848s] ... ok
{3} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.197572s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth [0.124665s] ... ok
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_validate_port_info_neutron_interface [0.132337s] ... ok
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.123712s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error [0.133758s] ... ok
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_validate_port_info_neutron_interface_missed_info [0.121285s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded [0.120345s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cleanhold_abort_tear_down_fail [0.172492s] ... ok
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_validate_port_info_neutron_interface_with_client_id [0.129202s] ... ok
{0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http [0.116299s] ... ok
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_validate_port_info_neutron_with_network_type_unmanaged [0.144888s] ... ok
{3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_early [0.164341s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_save_configuration_http_error [0.110960s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth [0.126574s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_with_step [0.199075s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_save_configuration_swift [0.133913s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth [0.137714s] ... ok
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_validate_port_info_neutron_with_no_smartnic_and_link_info [0.765206s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestNeutronNetworkInterfaceMixin.test_get_network_names_and_uuids [0.392478s] ... ok
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.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port [0.050746s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client [0.058429s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.217766s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception [0.077416s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.050040s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.108199s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.050989s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.046054s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.064656s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.068680s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.064754s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.039052s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.069915s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.033178s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.034308s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.055050s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [1.277944s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.054898s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.063682s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.073752s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.050796s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.045638s] ... ok
{2} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.064337s] ... ok
{0} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.641248s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update [0.037228s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.444126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.052838s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.076840s] ... ok
{0} ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.058643s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.052087s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 [0.056230s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 [0.055955s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 [0.059782s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 [0.036926s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 [0.056911s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 [0.060455s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed [0.057445s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 [0.073827s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.346809s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.060603s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 [0.081763s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.076307s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 [0.085165s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.057299s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 [0.078707s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.077419s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.292965s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_policy.PolicyInCodeTestCase.test_creds_08 [0.079774s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.075070s] ... ok
{2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.039399s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 [0.056361s] ... ok
{2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config [0.024799s] ... ok
{2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_bad_file [0.041417s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 [0.080692s] ... ok
{2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_default [0.059779s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 [0.063033s] ... ok
{2} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_no_match [0.029606s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 [0.065280s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.070569s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.315908s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_policy.PolicyInCodeTestCase.test_creds_13 [0.064532s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.082868s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 [0.054888s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.054539s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 [0.053179s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.086000s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 [0.080128s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.041164s] ... ok
{0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 [0.093925s] ... ok
{2} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.105678s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.395513s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.124249s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.071294s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.212707s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.057260s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.060666s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.059909s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe [0.201828s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.091513s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat [0.189602s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.153517s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.564566s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path [0.126965s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda [0.171905s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config [0.098280s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track [0.308599s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso [0.140639s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot [0.118530s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template [0.092449s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing [0.141826s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables [0.101547s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.117807s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable [0.087086s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok [0.331691s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.117231s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe [0.139290s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option [0.139379s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.183376s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http [0.125815s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.350962s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.066643s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.072718s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.080595s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.239020s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.090301s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.086457s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.215501s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.093192s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.457698s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [9.089410s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.122820s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso [0.178197s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure [0.098918s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.136520s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.134443s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.100409s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [0.091300s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [0.437400s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.101783s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.097561s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.085549s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.105014s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps [0.293921s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk [0.094119s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.138487s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_bios_boot_mode_fails [0.150278s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop [0.083623s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_uefi_boot_mode_fails [0.092076s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source [0.062635s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path [0.090363s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug [1.048087s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false [0.247490s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files [0.130066s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot [0.082694s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod [0.076462s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue [0.084990s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy [0.098355s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.112264s] ... ok
{0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path [0.089538s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.061616s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay [1.088607s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false_even_if_src_set [0.318355s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.078421s] ... ok
{0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image [0.093767s] ... ok
{0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_flags [0.061162s] ... ok
{0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_just_fails [0.053766s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.165998s] ... ok
{0} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries [0.054854s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_instance [0.240989s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_alternate_error [0.047558s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi [0.084745s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.060851s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios [0.060692s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestRequestContextSerializer.test_deserialize_context [0.056414s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi [0.044323s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestRequestContextSerializer.test_deserialize_entity [0.046646s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 [0.069643s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.056228s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_none [0.266219s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi [0.065892s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rpc.TestRequestContextSerializer.test_serialize_context [0.070327s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options [0.068042s] ... ok
{0} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.060099s] ... ok
{0} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.050117s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_hexadecimal_lunid [0.063558s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.055678s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_request [0.265467s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.083701s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_adopt [0.088413s] ... ok
{2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_servicing [0.057370s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path [0.303718s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.087499s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.029507s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.025445s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.026173s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.035241s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.026336s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.028864s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.032190s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.033694s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.055481s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none [0.346423s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.025898s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.030192s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.039676s] ... ok
{3} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_update_fails_on_invalid_boot_mode [0.110209s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.046111s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.024861s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.052623s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software [0.045585s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks [0.029064s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.032680s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.039218s] ... ok
{2} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.037981s] ... ok
{2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.020385s] ... ok
{2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.027049s] ... ok
{2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.021209s] ... ok
{2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions [0.033685s] ... ok
{2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.051344s] ... ok
{2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.055612s] ... ok
{2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure [0.033839s] ... ok
{2} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.032014s] ... ok
{2} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.088160s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive [0.121156s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift [0.080330s] ... ok
{3} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_failure [0.877998s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_swift.SwiftTestCase.test___init__ [1.808214s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build [0.127818s] ... ok
{2} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.067134s] ... ok
{3} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_ok [0.174951s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_inspection.TestContinueInspection.test_ok_asynchronous [0.145091s] ... ok
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.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.170035s] ... ok
{3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_ok [0.181368s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_inspection.TestInspectHardware.test_inspect_hardware_raises_error [0.174722s] ... ok
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.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.408452s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_inspection.TestInspectHardware.test_inspect_hardware_return_inspect_wait [0.126264s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_inspection.TestInspectHardware.test_inspect_hardware_return_inspecting [0.065324s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_inspection.TestInspectHardware.test_inspect_hardware_return_other_state [0.080956s] ... ok
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.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.209434s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_unexpected_error [0.066500s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_exception_getting_current [0.182524s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_power_on [0.301783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task [0.184544s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_swift.SwiftTestCase.test_create_object [1.363391s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.224819s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing [0.154257s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked [0.105010s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid [0.130596s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail [0.128153s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_worker_pool_full [0.155541s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.153112s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_change_node_power_state_unsupported_state [0.747141s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy [0.234262s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_change_node_power_state_validate_fail [0.274728s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [1.103834s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.164155s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.134243s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_change_node_power_state_worker_pool_full [0.389634s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.174399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.300157s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.118006s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_get_power_fail [0.535437s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.158686s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_automated_abort [0.214801s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_swift.SwiftTestCase.test_create_object_create_object_fails [1.227171s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.359441s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_abort_last_clean_step [0.139421s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_locked [0.116273s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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 [0.128925s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_set_power_fail [0.317599s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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 [0.273089s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_node_set_power_state_notif_spawn_fail [0.325709s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_abort_last_clean_step [0.159173s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_worker_pool_full [0.136755s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_swift.SwiftTestCase.test_create_object_from_data [0.971547s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.137354s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.476839s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_invalid_state [0.317357s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.217894s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout [0.163288s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.237348s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.190553s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.255965s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.150390s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_manager.CheckTimeoutsTestCase.test_check_servicewait_timeouts [0.197762s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_manager.CreatePortTestCase.test_create_port [0.074355s] ... ok
{0} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_container_fails [1.494570s] ... ok
{2} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists [0.077927s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.917111s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.085968s] ... ok
{2} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.080490s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.214473s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DestroyPortgroupTestCase.test_destroy_portgroup [0.101249s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [9.093629s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.101405s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure [0.083859s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.298350s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeRescueTestCase.test__do_node_rescue_abort [0.161869s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.122018s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.092260s] ... ok
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.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.192504s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_do_node_clean_worker_pool_full [0.341284s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeRescueTestCase.test__do_node_rescue_errors [0.138253s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_swift.SwiftTestCase.test_create_object_from_data_create_object_fails [1.051220s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.156956s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_do_provision_action_unlocks_cleaning_automated [0.311917s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.142978s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_do_provision_action_unlocks_cleaning_manual [0.376175s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeCleanTestCase.test_do_provision_action_unlocks_deploying [0.336603s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_swift.SwiftTestCase.test_delete_object [0.962081s] ... ok
{3} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.307471s] ... ok
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.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeRescueTestCase.test__do_node_unrescue [0.953764s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.351535s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.363608s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeInspectAbortTestCase.test_do_inspect_abort_state_set_by_driver [0.310554s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.355637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.253473s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.NmiTestCase.test_inject_nmi [0.131542s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_swift.SwiftTestCase.test_delete_object_exc [1.319370s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.416595s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.NmiTestCase.test_inject_nmi_node_locked [0.122348s] ... ok
{3} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented [0.158517s] ... ok
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.DoNodeRescueTestCase.test_do_node_rescue [0.229992s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.NmiTestCase.test_inject_nmi_validate_invalid_param [0.108311s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NmiTestCase.test_inject_nmi_validate_missing_param [0.049225s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_from_all_nodes_one_pass [0.124976s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.394200s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [0.763265s] ... ok
{3} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config [0.303599s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeRescueTestCase.test_do_node_rescue_maintenance [0.156279s] ... ok
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.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.221931s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.308037s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.153051s] ... ok
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.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.223724s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_with_days [0.342416s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeRescueTestCase.test_do_node_unrescue [0.188764s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.198004s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.217092s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.236380s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_swift.SwiftTestCase.test_get_temp_url [1.239723s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance [0.106556s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_indexerror [0.090331s] ... ok
{0} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 [0.061130s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.123449s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipv6 [0.055237s] ... ok
{0} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal [0.061632s] ... ok
{0} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed [0.055889s] ... ok
{0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.069921s] ... ok
{0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.049341s] ... ok
{2} ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort [0.294929s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.062967s] ... ok
{0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.038869s] ... ok
{0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.053705s] ... ok
{0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.055952s] ... ok
{0} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.037707s] ... ok
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token [0.275931s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.NodeInspectHardware.test__check_inspect_wait_timeouts [0.981892s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.HeartbeatTestCase.test_heartbeat_invalid_agent_token_older_version [0.308519s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.247555s] ... ok
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.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_newer_version [0.237129s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.NodeInspectHardware.test_inspect_hardware_validate_fail [0.229362s] ... ok
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.conductor.test_manager.HeartbeatTestCase.test_heartbeat_tls_required [0.128770s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.HeartbeatTestCase.test_heartbeat_with_agent_token [0.207616s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.298578s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [1.094462s] ... ok
{0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_all [0.059429s] ... ok
{3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data [0.177202s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_utils.MatchRootDeviceTestCase.test_find_devices_name [0.053307s] ... ok
{0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_none [0.068891s] ... ok
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_verify_ca [0.326712s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute [0.050838s] ... ok
{0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints [0.067673s] ... ok
{3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled [0.216435s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 [0.091055s] ... ok
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_version [0.257064s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_multiple_workers [0.184064s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 [0.101052s] ... ok
{0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found [0.053524s] ... ok
{0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators [0.057489s] ... ok
{0} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint [0.068114s] ... ok
{3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_one_worker [0.189999s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational [0.039649s] ... ok
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_no_required_agent_token [0.248028s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool [0.052898s] ... ok
{0} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink [0.061869s] ... ok
{3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all [0.199799s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_utils.UnlinkTestCase.test_unlink_ENOENT [0.059790s] ... ok
{0} ironic.tests.unit.common.test_vnc.VncTestCase.test_get_console [0.062346s] ... ok
{0} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_authorize [0.078949s] ... ok
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_required_agent_token [0.322509s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_vnc.VncTestCase.test_novnc_unauthorize [0.098009s] ... ok
{3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non [0.346055s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_vnc.VncTestCase.test_novnc_validate [0.107998s] ... ok
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_agent_version_anaconda [0.250972s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.common.test_vnc.VncTestCase.test_novnc_validate_expired [0.083356s] ... ok
{0} ironic.tests.unit.common.test_vnc.VncTestCase.test_token_valid_until [0.051256s] ... ok
{0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.091819s] ... ok
{3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part [0.306238s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.085827s] ... ok
{2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_version [0.236237s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.063286s] ... ok
{0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit [0.076759s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.057459s] ... ok
{0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.101988s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.073665s] ... ok
{3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__sensors_conductor [0.241521s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.075102s] ... ok
{0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.086531s] ... ok
{3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task [0.222944s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state [0.352459s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_task_maintenance [0.273203s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test_send_sensor_task_no_management [0.231663s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.750944s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance [0.301641s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.064385s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout [9.116537s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.079089s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset [0.080244s] ... ok
{3} ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown [0.193904s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.134566s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option [0.133893s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.220067s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.100256s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.068431s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles [0.453632s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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(
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.078515s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.224593s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.075865s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.089831s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.288704s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.110634s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled [0.136226s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.301143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.082392s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.092975s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.157230s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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)
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.060697s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.056100s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.066527s] ... ok
{0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.170115s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.415973s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.102515s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.110377s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.064659s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.062989s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [1.132730s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.097751s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.162857s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.089411s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.083703s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.107095s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.152383s] ... ok
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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.498239s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.117546s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track [0.136433s] ... ok
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_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track [0.064530s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.194711s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.116505s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support [0.173578s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.091285s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rebuild_active_state_error [0.401941s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.140199s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.179213s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.084290s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.108076s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.175088s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.609141s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_with_disable_power_off [0.116798s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.568905s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.094335s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.075412s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.191597s] ... ok
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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.119136s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.081355s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state [0.190926s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rebuild_deployfail_state [0.483628s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node [0.061795s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.081089s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [2.065518s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated [0.231696s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_vendor_detection [0.116751s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.108783s] ... ok
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.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.065559s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.076721s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.069460s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.152150s] ... ok
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.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.064690s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.079935s] ... ok
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.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.067887s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.123893s] ... ok
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.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.070895s] ... ok
{2} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.066889s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.089293s] ... ok
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.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.076053s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.126949s] ... ok
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.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.081422s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.095628s] ... ok
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.ManagerSyncPowerStatesTestCase.test_single_node [0.080202s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled [0.092078s] ... ok
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.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed [0.073952s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [1.204791s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerTestProperties.test_driver_properties_fail [0.138872s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.167356s] ... ok
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.ManagerTestProperties.test_driver_properties_ilo [0.168583s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.228258s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.272863s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network_validate_fail [0.086783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_rebuild_protected [0.225383s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.125227s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.130559s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits_validate_fail [0.266772s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.090200s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_validate_fail [0.339457s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.308119s] ... ok
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.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi [0.870769s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.082056s] ... ok
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.ManagerTestProperties.test_driver_properties_manual_management [0.142620s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual [0.121704s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_validate_template_fail [0.390039s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.ManagerTestProperties.test_driver_properties_snmp [0.194058s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.065731s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.235854s] ... ok
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.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.074830s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.101383s] ... ok
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.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.068969s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.098979s] ... ok
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.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.066253s] ... ok
{3} ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.303459s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk [0.067788s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.078019s] ... ok
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.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [0.137403s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.150610s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power_validate_fail [0.097881s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortTestCase.test_update_port_address_active_node [0.126033s] ... ok
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.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.183115s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.104868s] ... ok
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.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.069822s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance [0.139330s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_prepare_clean_wait [0.096369s] ... ok
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.RaidHardwareTypeTestCases.test_set_target_raid_config [0.143443s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.141799s] ... ok
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.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.176531s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_network_error_fail [0.080293s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_continue_node_clean [0.059006s] ... ok
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.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.156207s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortTestCase.test_update_port_node_deleting_state [0.135647s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_continue_node_clean_no_skip_step [0.045039s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortTestCase.test_update_port_node_locked [0.110242s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy [0.099086s] ... ok
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.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.170292s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortTestCase.test_update_port_node_manageable_state [0.131609s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.158511s] ... ok
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.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.154603s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.082535s] ... ok
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.065006s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance [0.163383s] ... ok
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_replace [0.097549s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.143169s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.232409s] ... ok
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_can_send_create_port_False [0.094145s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.070701s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict [0.116679s] ... ok
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_can_send_create_port_True [0.075339s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_active [0.066839s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.130434s] ... ok
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_can_send_rescue_false [0.115235s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_wait [0.097219s] ... ok
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_can_send_rescue_true [0.055717s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.146758s] ... ok
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_change_node_boot_mode [0.072012s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.148481s] ... ok
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_change_node_power_state [0.061819s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_secure_boot [0.033599s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.035116s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.048438s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk [0.169134s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortTestCase.test_update_port_portgroup_active_node [0.203404s] ... ok
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_continue_node_service [0.047308s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.044666s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node [0.051965s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.027274s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.163100s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.178556s] ... ok
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_destroy_allocation [0.029981s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.042385s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.138905s] ... ok
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_destroy_portgroup [0.125112s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.130188s] ... ok
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_destroy_volume_connector [0.093237s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.072699s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.062570s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.155587s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.UpdatePortgroupTestCase.test_update_portgroup_failure [0.079585s] ... ok
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_do_node_deploy [0.092090s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.079474s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps [0.073204s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.068433s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_service [0.082699s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.175292s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_do_node_tear_down [0.060943s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.072558s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.140212s] ... ok
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_driver_vendor_passthru [0.050985s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.090928s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [1.134914s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.216888s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_conductor_for [0.097652s] ... 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_console_information [0.093219s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.176132s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.266894s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.114490s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.162355s] ... ok
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_get_driver_vendor_passthru_methods [0.096515s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.135228s] ... ok
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_get_indicator_state [0.086145s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.150135s] ... ok
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_get_node_vendor_passthru_methods [0.066262s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.123018s] ... ok
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_get_node_with_token [0.084049s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.114961s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.062822s] ... ok
{0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_node_clean_steps_fail_poweroff [0.256935s] ... ok
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_get_random_topic [0.077410s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [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(
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.065510s] ... ok
{0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.114220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_type [0.121922s] ... ok
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_get_supported_boot_devices [0.084919s] ... ok
{0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.075924s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators [0.059502s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.122345s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.BootDeviceTestCase.test_get_boot_device_validate_fail [0.123016s] ... ok
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_get_topic_doesnt_cache [0.103040s] ... 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.UpdateVolumeTargetTestCase.test_update_volume_target [0.142048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.BootDeviceTestCase.test_get_supported_boot_devices [0.137402s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.117938s] ... 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.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.292722s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.BootDeviceTestCase.test_set_boot_device [0.277308s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.BootDeviceTestCase.test_set_boot_device_node_locked [0.126506s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.155982s] ... ok
{0} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail [0.142273s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.158138s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.186834s] ... ok
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_get_topic_for_driver_known_driver [0.915140s] ... 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.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.219917s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current [0.448293s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_get_topic_for_driver_unknown_driver [0.133405s] ... 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.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.121226s] ... ok
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_get_topic_for_known_driver [0.145748s] ... 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.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task [0.288860s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_get_topic_for_unknown_driver [0.152203s] ... 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_heartbeat [0.149094s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing [0.408312s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_heartbeat_agent_token [0.149647s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.093152s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [9.093738s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.060886s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.103193s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure [0.081615s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call [0.132809s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked [0.455342s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_local_call_expected_exception [0.080676s] ... ok
{3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [1.130079s] ... ok
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.088682s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid [0.177220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.VirtualMediaTestCase.test_attach_virtual_media_http [0.149211s] ... ok
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_with_rpc_disabled [0.135605s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail [0.116786s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.VirtualMediaTestCase.test_attach_virtual_media_local [0.109377s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_do_attach_virtual_media [0.070854s] ... ok
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_no_conductor_with_rpc_disabled [0.154442s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full [0.185781s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_attach [0.067397s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_do_attach_virtual_media_fails_on_prepare [0.134456s] ... ok
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.155311s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning [0.152179s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_rpc_service.TestRPCService.test_drain_has_reserved [0.066426s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy [0.118086s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_local_cast [0.114910s] ... ok
{3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_shutdown_timeout_reached [0.070691s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error [0.120255s] ... ok
{3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start [0.123686s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled [0.144242s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_rpc_service.TestRPCService.test_start_failure [0.086005s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action [0.141074s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled [0.141915s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_rpc_service.TestRPCService.test_start_no_rpc [0.116653s] ... ok
{3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_full_reset_interval [0.038850s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console [0.087439s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.115372s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled [0.053934s] ... ok
{3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_remaining_interval [0.080383s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.067010s] ... ok
{3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_has_reserved [0.044763s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions [0.179280s] ... ok
{3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_instant [0.093642s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.096710s] ... ok
{3} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_slow [0.083966s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.060410s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled [0.279910s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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()
{3} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.102068s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version [0.074700s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.064704s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.052193s] ... ok
{3} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.052001s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.069288s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled [0.055820s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.101135s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ConsoleTestCase.test_set_console_mode_enabled [0.250616s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_serialized_instance_has_uuid [0.054936s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.095332s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.058012s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.056866s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override [0.087667s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state [0.050241s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.046765s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable [0.098393s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.058089s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail [0.102827s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok [0.048059s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.080422s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.059593s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.070036s] ... ok
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_update_portgroup [0.135208s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk [0.100345s] ... ok
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_update_volume_connector [0.120782s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.120018s] ... ok
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_update_volume_target [0.123280s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.126997s] ... ok
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_validate_driver_interfaces [0.111198s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.104681s] ... ok
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_vendor_passthru [0.092877s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.047706s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.072365s] ... ok
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_vif_attach [0.100080s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk [0.049679s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ConsoleTestCase.test_set_console_mode_start_fail [1.201803s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_vif_detach [0.097105s] ... ok
{2} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.034070s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_reserved_options [0.121441s] ... ok
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.NodeVerifyStepsTestCase.test__get_verify_steps [0.054478s] ... ok
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.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled [0.048713s] ... ok
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.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail [0.040001s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.124795s] ... ok
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.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off [0.057584s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_stop_fail [0.320800s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok [0.043689s] ... ok
{3} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.155379s] ... ok
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.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted [0.066144s] ... ok
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.NodeVerifyStepsTestCase.test_execute_verify_step [0.093318s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ConsoleTestCase.test_set_console_mode_validation_fail [0.252560s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.175229s] ... ok
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.ReservedStepsHandlerTestCase.test_reserved_step_power_off [0.149664s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_config_false [0.182696s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.181538s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_on [0.140189s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ContinueInspectionTestCase.test_continue_ok [0.079015s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ContinueInspectionTestCase.test_continue_with_discovery [0.057126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info [0.148894s] ... ok
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.ReservedStepsHandlerTestCase.test_reserved_step_power_reboot [0.149676s] ... ok
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.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps [0.051008s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ContinueInspectionTestCase.test_wrong_state [0.118519s] ... ok
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_utils.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string [0.120012s] ... ok
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.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps [0.072935s] ... ok
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.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node [0.065827s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyNodeTestCase.test_destroy_node [0.147364s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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(
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.044270s] ... ok
{3} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks [0.148732s] ... ok
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_fsm_raises [0.024325s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.025004s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.034024s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.117862s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.023700s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.035647s] ... ok
{2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.023280s] ... ok
{3} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_inspected_no_heartbeat [0.188809s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.112324s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated [0.096982s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.122139s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FastTrackTestCase.test_is_fast_track_not_in_servicing [0.109732s] ... ok
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.295708s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_broken_driver [0.180597s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.CacheBootModeTestCase.test_already_present [0.048760s] ... ok
{3} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_power_off_false [0.092510s] ... ok
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.CacheBootModeTestCase.test_change_secure_off [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(
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off_to_none [0.105329s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.221098s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat [0.240235s] ... ok
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.CacheBootModeTestCase.test_failed_boot_mode [0.139445s] ... ok
{3} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info [0.114967s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyNodeTestCase.test_destroy_node_console_enabled [0.165426s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.CacheBootModeTestCase.test_failed_secure [0.103593s] ... ok
{3} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_via_driver_info_string [0.098475s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.099856s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.GetConfigDriveImageTestCase.test_build_empty [0.062692s] ... ok
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness [0.093383s] ... ok
{3} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated [0.062648s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off [0.115816s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.CacheBootModeTestCase.test_retreive_and_set [0.097695s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetConfigDriveImageTestCase.test_build_user_data_as_dict [0.072716s] ... ok
{2} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported [0.062944s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.029965s] ... ok
{3} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string [0.059633s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.042741s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected [0.194743s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.GetConfigDriveImageTestCase.test_no_configdrive [0.067424s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.053517s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.032575s] ... ok
{3} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string [0.058442s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.106573s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.042154s] ... ok
{3} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_no_change [0.071072s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.048600s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.031541s] ... ok
{3} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing [0.058320s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.030848s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.044855s] ... ok
{3} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new [0.085201s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.038553s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.028643s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved [0.244445s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.035743s] ... ok
{3} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over [0.091620s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.049245s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_with_allocation [0.097449s] ... ok
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.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.049460s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout [0.030715s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout_handler_call [0.028830s] ... ok
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios [0.176871s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.DestroyNodeTestCase.test_inventory_in_swift_get_destroyed_after_destroying_a_node_by_uuid [0.129871s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.081287s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.046635s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.045636s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_maintenance [0.139559s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.044993s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.068108s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_not_maintenance [0.127683s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.041897s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.033941s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port [0.072877s] ... ok
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.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.040321s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif [0.062168s] ... ok
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.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.039639s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler [0.038867s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_vif_present [0.082026s] ... ok
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.ErrorHandlersTestCase.test_servicing_error_handler_no_fail [0.045027s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_teardown [0.030638s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_port_unbound [0.053107s] ... ok
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.ErrorHandlersTestCase.test_servicing_error_handler_servicefail [0.107639s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicewait [0.066535s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_state [0.157444s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cache_bios_exception [0.765217s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_locked [0.091778s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_tear_down_error [0.125714s] ... ok
{0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.069516s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.070143s] ... ok
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.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.116513s] ... ok
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported [0.235024s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.078873s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.108255s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.098186s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.103579s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.103771s] ... ok
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify [0.358954s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.087425s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.038197s] ... ok
{2} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_no_worker [0.056304s] ... ok
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.176770s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_other_error [0.069992s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history [0.032244s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.499448s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled [0.060947s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.056131s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.048633s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop [0.085839s] ... ok
{3} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.198100s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity [0.030676s] ... ok
{3} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_fail [0.034885s] ... ok
{3} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_ok [0.044083s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.103178s] ... ok
{3} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_priority [0.026777s] ... ok
{3} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_ok [0.031460s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.078957s] ... ok
{3} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_unknown [0.041220s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.066116s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped [0.039808s] ... ok
{3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db [0.121376s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.032122s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user [0.379738s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.098324s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.039061s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.103635s] ... ok
{3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db_instance_not_found [0.210632s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.080561s] ... ok
{3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up [0.092319s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.195919s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.046903s] ... ok
{0} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.071386s] ... ok
{3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.063342s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.104384s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.061803s] ... ok
{3} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.043866s] ... ok
{0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor [0.193775s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either 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.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad [0.041321s] ... ok
{3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate [0.046904s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.189368s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_get_node_with_token [0.117042s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cannot_migrate_some [0.107403s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state [0.140339s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.097557s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [9.118942s] ... ok
{0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes [0.140248s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_with_limit [0.074801s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.149992s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateToLatestVersionsTestCase.test_empty_db [0.061007s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_disable_power_off [0.056593s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_iter_nodes_shutdown [0.165961s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /builddir/build/BUILD/ironic-29.1.0.dev159/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor.
  self._executor = futurist.GreenThreadPoolExecutor(
/usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future.
  f = GreenFuture()
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.078823s] ... ok
{0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_locked [0.069471s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state [0.100804s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_node_with_token_already_set [0.041488s] ... ok
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.070563s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.105927s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.087940s] ... ok
{0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.047584s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.065488s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.189366s] ... ok
{0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.064216s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.072363s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.055909s] ... ok
{0} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.057726s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.093558s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.129662s] ... ok
{3} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.086212s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.098862s] ... ok
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.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.124544s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_associate_node_powered_on [0.057558s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateToLatestVersionsTestCase.test_version_exists [0.064003s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_keep_last_error [0.072283s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.116594s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.142135s] ... ok
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.NodePowerActionTestCase.test_node_power_action_power_off [0.169090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_already_associated [0.160726s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [1.065814s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_already [0.105857s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_already_locked [0.139990s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_at_limit [0.366886s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.078569s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_duplicate [0.075770s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.065616s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.059923s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_fix_broken_interface [0.048092s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.052768s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_hardware_type [0.062375s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface [0.029445s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.662711s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.042122s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.262216s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.187647s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.088240s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.099055s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.096647s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.048159s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.056744s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [1.297392s] ... ok
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(
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.071327s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.029521s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.030033s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.045895s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.048331s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.033040s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.027757s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_exception_if_child_locked [2.129981s] ... ok
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.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.065947s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.323422s] ... ok
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(
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.073509s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.137732s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.103989s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent [0.224821s] ... ok
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.UpdateNodeTestCase.test_update_node_interface_invalid [0.104931s] ... ok
{3} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.094788s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver [0.033195s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.056081s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface [0.048502s] ... ok
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.NodePowerActionTestCase.test_node_power_action_power_off_parent_child_remains [0.186348s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.138568s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.031176s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.044943s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_check_node_list [0.078871s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set [0.067021s] ... ok
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.db.test_nodes.DbNodeTestCase.test_check_node_list_impossible [0.106604s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token [0.208419s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UpdateNodeTestCase.test_update_node_protected_unset [0.122904s] ... ok
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.db.test_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.087058s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state [0.029243s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.064811s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired [0.069539s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach [0.136870s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.071708s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set [0.097187s] ... ok
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.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.066616s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on [0.140142s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_name_duplicate [0.063848s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset [0.151002s] ... ok
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.db.test_nodes.DbNodeTestCase.test_create_node_with_tags [0.068103s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits [0.049712s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.039392s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.072231s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.029951s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_firmware_component_list_after_destroying_a_node_by_uuid [0.052338s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.063094s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance [0.090052s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.061561s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.063050s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name [0.104033s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.073637s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.774932s] ... ok
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(
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.075011s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.097967s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.153263s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.337611s] ... ok
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.db.test_nodes.DbNodeTestCase.test_get_node_list [0.098098s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.044727s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_description [0.108621s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project [0.048784s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_includes_traits [0.085749s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.329820s] ... ok
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(
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits [0.046102s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits [0.083873s] ... ok
{0} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.170325s] ... ok
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.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.163735s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.132153s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.044205s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.062828s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.059999s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.041754s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification [0.075637s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.032421s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.039021s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.082723s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.040908s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.084698s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_exception_if_parent_locked [2.185481s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_conductor_node_notification_known_payload_exc [0.108898s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid [0.053616s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.120899s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.097026s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.313360s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.102806s] ... ok
{0} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.102164s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_get_destroyed_after_destroying_a_node_by_uuid [0.394282s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_updated_for_node [0.033553s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_parent_off [0.186202s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_provision_state_count [0.047292s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.045604s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.043311s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.077984s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.186399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_release_non_locked_node [0.038214s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.045395s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.048288s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_in_exception_message [0.036141s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.042043s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.050108s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.046616s] ... ok
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.NodePowerActionTestCase.test_node_power_action_power_on_with_parent [0.322343s] ... ok
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.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_once_sqlite [0.041185s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_twice [0.055739s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_tags_get_destroyed_after_destroying_a_node [0.045604s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.050415s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot [0.160341s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_touch_node_provisioning [0.065101s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.053553s] ... ok
{0} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.924551s] ... ok
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(
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot_with_disable_power_off [0.208089s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_traits_get_destroyed_after_destroying_a_node [0.110981s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.079876s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.032895s] ... ok
{2} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout [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(
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.047887s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.063189s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspecting [0.036154s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspectwait [0.036440s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.041922s] ... ok
{0} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.454669s] ... ok
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_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.235392s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_update_node_inspection_started_at_inspecting [0.083652s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspectwait [0.093216s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.052584s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait [0.184377s] ... ok
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.NodePowerActionTestCase.test_node_power_action_set_power_failure [0.199770s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_update_node_name_duplicate [0.044590s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision [0.035003s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.038472s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.037371s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time [0.180496s] ... ok
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.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.276021s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time_to_long [0.167950s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.063835s] ... ok
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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection [0.131742s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps [0.090270s] ... ok
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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection_raise_OSError [0.122885s] ... ok
{0} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok [0.050275s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_skip_missing [0.061026s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.AgentTokenUtilsTestCase.test_add_secret_token [0.023553s] ... ok
{0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present [0.019819s] ... ok
{0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info [0.021267s] ... ok
{0} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info [0.025015s] ... ok
{0} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present [0.042630s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.064609s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout [0.064817s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_update_node_retries [0.765371s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.063603s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.075307s] ... ok
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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_address_string_doesnt_do_reverse_dns_lookup [0.524777s] ... ok
{0} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.069585s] ... ok
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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client [0.072869s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ServiceUtilsTestCase.test_wipe_service_internal_info [0.067629s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.026192s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.020316s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.028521s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_http_forwarded_proto_https [0.089560s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.026466s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.020235s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.020040s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.065405s] ... ok
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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_ipv6_url [0.159164s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [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(
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.059080s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.063347s] ... ok
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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_allowed_origin_header [0.167909s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.066058s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.075720s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.055119s] ... ok
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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_bad_origin_header [0.200038s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [9.100236s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.080705s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.055539s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.060433s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_blank_origin_header [0.169952s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.062876s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.058439s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.089111s] ... ok
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.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_no_origin_header [0.142681s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.076418s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [0.089248s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_update_node_retries_without_log_mock [1.390145s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_token_invalid [0.208680s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.051120s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [0.083589s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_non_default_ssl_min_version_is_set [0.220025s] ... ok
{3} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits [0.124126s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.380963s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.096212s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_volume_connector_get_destroyed_after_destroying_a_node [0.152855s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect [0.244501s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.134429s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.154842s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.086425s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.065720s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.074870s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_volume_target_gets_destroyed_after_destroying_a_node [0.202262s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect_3_slashes [0.350356s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.100114s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.092426s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.073213s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ports.DbPortTestCase.test_create_port_duplicated_address [0.094099s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_is_not_set [0.182353s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.094521s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.082440s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_with_description [0.107486s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_not_set_by_default [0.198577s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.225710s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ports.DbPortTestCase.test_destroy_port [0.109964s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.092104s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_err [0.203378s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.178930s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner [0.087286s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_owner_no_match [0.073092s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.114089s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ports.DbPortTestCase.test_get_port_by_address_filter_by_project [0.084682s] ... ok
{2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_ok [0.232593s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.121766s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match [0.100217s] ... ok
{2} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.086214s] ... ok
{0} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.072063s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.084486s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ports.DbPortTestCase.test_get_port_by_id [0.122867s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.096390s] ... ok
{0} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_bad_path_raises [0.034999s] ... ok
{0} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths [0.031116s] ... ok
{0} ironic.tests.unit.conf.test_conductor.ValidateConductorAllowedPaths.test_abspath_validation_good_paths_trailing_slash [0.028175s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.099389s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name [0.117745s] ... ok
{0} ironic.tests.unit.conf.test_types.ExplicitAbsolutePath.test_explicit_absolute_path [0.029902s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_name [0.029768s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_path [0.026115s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__host_port [0.025200s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.107356s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__reload [0.040789s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.126184s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__start [0.040782s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__stop [0.023944s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.119767s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__unit_name [0.023747s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__write_container_file [0.039915s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list [0.130947s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_delete_container_file [0.053179s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.101198s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_start_stop_container [0.035870s] ... ok
{0} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_stop_all_containers [0.043907s] ... ok
{0} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_handshake [0.026238s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.114024s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_conductor_groups [0.171275s] ... ok
{0} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_types [0.023037s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.138161s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_owner [0.123359s] ... ok
{0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{0} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project [0.145427s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted [0.138971s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.113578s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner [0.109387s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.468919s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match [0.138638s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project [0.160231s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match [0.127926s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [0.413058s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [1.018936s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist [0.060599s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.052112s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.067384s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.101695s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner [0.054643s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.078346s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match [0.046763s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.098204s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project [0.097936s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.087424s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.276329s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match [0.117086s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table [0.026858s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.098677s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.105129s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_no_match [0.060157s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.109128s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_multi [0.045642s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_single [0.040131s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.244488s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.033999s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.125778s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.065004s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.064138s] ... ok
{3} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.039262s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.134952s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.076264s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.111210s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.274402s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.141258s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.084156s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.118671s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.124827s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.531484s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 [0.070523s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.118334s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.033037s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.626891s] ... ok
{0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table [0.039845s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.107503s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.101919s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_create_chassis_already_exists [0.029275s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.068058s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.059550s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.110349s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.052769s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning [0.077367s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_with_nodes [0.038807s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.033597s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.069445s] ... ok
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_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.139440s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.056307s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.089961s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.049910s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.027400s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.108546s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.029501s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.061268s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_that_does_not_exist [0.029115s] ... ok
{0} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.026159s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.074162s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.033242s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.027125s] ... ok
{2} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.142545s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.062339s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_uuid [0.055929s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.037848s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.075239s] ... ok
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_allocations.AllocationsTestCase.test_update_allocation_not_found [0.093737s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.027053s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.054513s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.098155s] ... ok
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_allocations.AllocationsTestCase.test_update_allocation_uuid [0.085762s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.047331s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp [0.051630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.030986s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.033396s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.071763s] ... ok
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_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.123564s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.067966s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.063630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.111752s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.098297s] ... ok
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_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.186052s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.056637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.059173s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_no_match [0.134153s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.043535s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.077613s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_duplicate_name [0.055091s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.194962s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.087590s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 [0.117577s] ... ok
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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.093359s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.076754s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.093840s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.058620s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 [0.156208s] ... ok
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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.078225s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.061228s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.079071s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.056602s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.032448s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.080091s] ... ok
{3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.166484s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.042518s] ... ok
{0} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.043737s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.117056s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error [0.115920s] ... ok
{0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component [0.073434s] ... ok
{0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component_duplicate [0.058431s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.090305s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.072334s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status [0.212891s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware_component.DbFirmwareComponentTestCase.test_delete_firmware_component_list [0.133703s] ... ok
{0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component [0.042393s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.095880s] ... ok
{0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list [0.038074s] ... ok
{0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list_node_not_exist [0.042386s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.112202s] ... ok
{0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_node_not_exist [0.040466s] ... ok
{0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_setting_not_exist [0.030305s] ... ok
{0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_component_not_exist [0.031001s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller [0.236031s] ... ok
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_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.089715s] ... ok
{0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_components [0.052865s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors [0.068207s] ... ok
{0} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_destroy_node_inventory_by_node_id [0.043357s] ... ok
{0} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_get_inventory_by_node_id [0.047231s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors_with_sqlite [0.082510s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create [0.053720s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed [0.193244s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbooks.DbRunbookTestCase.test_create_duplicate_name [0.051481s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.080883s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_uuid [0.066907s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors_with_sqlite [0.070895s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_invalid_step_no_interface [0.044789s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_no_steps [0.039354s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.089170s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing [0.231098s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbooks.DbRunbookTestCase.test_destroy [0.034731s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.077477s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_id [0.078669s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error [0.120254s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.072685s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_name [0.077823s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_uuid [0.083497s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.109460s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode [0.157189s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbooks.DbRunbookTestCase.test_get_runbook_list [0.048310s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.068472s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names [0.050433s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names_no_match [0.029814s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.083977s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_sorted [0.037226s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_duplicate_name [0.047950s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.074123s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion [0.184233s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbooks.DbRunbookTestCase.test_update_extra [0.063886s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_name [0.036465s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_offline [0.091345s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_not_found [0.033618s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid [0.130559s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_runbooks.DbRunbookTestCase.test_update_steps_add [0.036910s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor [0.079671s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_remove_all [0.035472s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace [0.036152s] ... ok
{2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor [0.076279s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace_args [0.057252s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac [0.141825s] ... ok
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_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.092023s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.067551s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy [0.106511s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [9.070898s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.069959s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.051819s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem [0.110895s] ... ok
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_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.082376s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.065647s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity [0.075280s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.088167s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.091876s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready [0.090965s] ... ok
{0} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_uuid_not_allowed [0.432783s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.080168s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status [0.086912s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.080561s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.091566s] ... ok
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_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.080745s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.073730s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_raritan_pdu2_snmp_objects [0.099144s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.095058s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url [0.125418s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up [0.063261s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects [0.065358s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready [0.085674s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.098658s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects [0.057775s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy [0.091202s] ... ok
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_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.080094s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.066423s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded [0.090498s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step [0.107641s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.056460s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails [0.124858s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.062063s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.139435s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log [0.090619s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.064852s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.074796s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.124780s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.DracRedfishRAIDTestCase.test__set_failed_clean [0.152506s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.104901s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.088004s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy [0.149853s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_get_clean_steps_priority [0.178377s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.117616s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties [0.095697s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects [0.074455s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error [0.111161s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_prepare [0.160104s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.DracRedfishRAIDTestCase.test__set_success_clean [0.299249s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.114117s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_prepare_cleaning [0.127952s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.DracRedfishRAIDTestCase.test__set_success_deploy [0.172238s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.117648s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_prepare_cleaning_callback_no_steps [0.114039s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready [0.070319s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror [0.104068s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.933679s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.204444s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.DracRedfishRAIDTestCase.test_create_configuration [0.069949s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags [0.076227s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration [0.056895s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.068255s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.080396s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async [0.127348s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.213926s] ... ok
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_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.085202s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync [0.081435s] ... ok
{2} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.077610s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks [0.064552s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.163274s] ... ok
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_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.079843s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration [0.082348s] ... ok
{2} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_empty_list [0.055788s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor [0.061203s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot [0.215586s] ... ok
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_shard.ShardTestCase.test_get_shard_list [0.094205s] ... ok
{2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.065000s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.934275s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.105030s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry [0.186476s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.130618s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cleaning [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(
{2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.135161s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot [0.100292s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.080514s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.115865s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.102127s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.087169s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate [0.112995s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.077059s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.141587s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.074948s] ... ok
{0} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image [0.169495s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.081999s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout [0.136268s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method [0.841361s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test__get_certificate_file_list [0.069469s] ... ok
{1} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error [0.119088s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty [0.072494s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail [0.079614s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.162365s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path [0.060665s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_no_managers [0.078295s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.103557s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none [0.082215s] ... ok
{2} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.114403s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type [0.056624s] ... ok
{3} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found [0.121739s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.117051s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.113021s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.068223s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.059893s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.099572s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.083543s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.121635s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.126798s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.106765s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.081206s] ... ok
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_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.121808s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.123011s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.116850s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.090994s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.089185s] ... ok
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_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.141723s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None [0.143928s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.134708s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.075610s] ... ok
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_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.104643s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_false [0.191489s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-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.186796s] ... ok
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_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid [0.108817s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.188502s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.065850s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.068475s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.076958s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.116672s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.110324s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid [0.206245s] ... ok
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_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.065069s] ... ok
{1} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.074590s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.077944s] ... ok
{1} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.080089s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.171258s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.RAIDInterfaceTestCase.test_apply_configuration [0.045184s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.083482s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error [0.201591s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.078875s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.086106s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.137569s] ... ok
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_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.047982s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true [0.120903s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.075110s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.047803s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.029475s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.087768s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.044376s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default [0.128270s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.206913s] ... ok
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_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.062511s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia [0.060414s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate [0.094715s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.051713s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.073558s] ... ok
{2} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.033546s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.095014s] ... ok
{2} ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.029543s] ... ok
{1} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config [0.062054s] ... ok
{2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.022825s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.155047s] ... ok
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.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error [0.047431s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.132504s] ... ok
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.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.035363s] ... ok
{1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.093458s] ... ok
{2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.028601s] ... ok
{2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_neutron_dhcp [0.020473s] ... ok
{1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.060482s] ... ok
{2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.022514s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info [0.173087s] ... ok
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.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none [0.049309s] ... ok
{1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses [0.075982s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.155940s] ... ok
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.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none_by_arch [0.031861s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy [0.026537s] ... ok
{1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.043139s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config [0.027547s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode [0.125792s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.TestManagementInterface.test_get_supported_indicators_default_impl [0.056955s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config_by_arch [0.044561s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated [0.035806s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.167090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.TestManagementInterface.test_inject_nmi_default_impl [0.071162s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso [0.039198s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated [0.033374s] ... ok
{1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl [0.069196s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params [0.183271s] ... ok
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.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.065853s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [0.141710s] ... ok
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.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue [0.041040s] ... ok
{1} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.087319s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config [0.049107s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso [0.044726s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates [0.116897s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode [0.151423s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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_default_interfaces [0.110815s] ... ok
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_exception [0.104900s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image [0.128673s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.120131s] ... ok
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_false [0.062973s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_clear_certificates_default [0.197598s] ... ok
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.052500s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image [0.120132s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.107960s] ... ok
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_create [0.096928s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error [0.180965s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.109137s] ... ok
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.067781s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test__validate_instance_image_info [0.119005s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.086616s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.082741s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.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.106478s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_clean_up_instance [0.123951s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.088039s] ... ok
{1} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.051771s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image [0.090096s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_fields.TestFlexibleDictField.test_coerce_bad_values [0.055632s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.066441s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk [0.126790s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.065892s] ... ok
{1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value [0.043074s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info [0.097436s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_fields.TestNotificationStatusField.test_coerce_good_value [0.073380s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info [0.072477s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk [0.154975s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_allocation_id_supported_missing [0.051038s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.081413s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.138124s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image [0.157287s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.109400s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.085198s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.169429s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image [0.220855s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.102472s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.704934s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.155880s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.078685s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.102585s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.081821s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.075149s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image [0.271936s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.126405s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.055589s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.071603s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_file_url [0.152344s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.056965s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.191408s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.083487s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url [0.171707s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.063161s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.048962s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step [0.206126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_bios_unsupported_missing [0.073097s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [0.159354s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.094951s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.131463s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.097142s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.272093s] ... ok
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_sec_boot_on_inst_info [0.887581s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.096785s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode [0.134769s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.100503s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_boot_mode_supported_missing [0.073880s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.060343s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail [0.114376s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.177434s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_boot_mode_supported_set [0.068029s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.046950s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.056310s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing [0.059689s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.071756s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean [0.083555s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default [0.122282s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.078220s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.102220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.263661s] ... ok
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_clean_up_ramdisk [0.064412s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default [0.096111s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.099044s] ... ok
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_from_volume [0.059243s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove [0.098390s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.077629s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.118058s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_conductor_group_supported_set [0.073151s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.104559s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.257567s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_conductor_group_supported_unset [0.085796s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.073044s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.171390s] ... ok
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_whole_disk_image [0.077234s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_validate [0.142592s] ... ok
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_glance_image [0.081831s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.161073s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_validate_bios [0.146899s] ... ok
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_glance_image_cleaning [0.090862s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_get_server_post_state [0.110685s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_validate_inspection [0.121123s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.117277s] ... ok
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_in_takeover [0.171733s] ... ok
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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing [0.130862s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.110212s] ... ok
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_not_a_glance_image [0.154242s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.086108s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance [0.126693s] ... ok
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_not_a_glance_image_cleaning [0.087879s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.114004s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso [0.067084s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.834544s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver [0.175175s] ... ok
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.102893s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.073829s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.144261s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.100729s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.093031s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate [0.068944s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.202445s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.149760s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.064577s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_description_supported_missing [0.126189s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection [0.052364s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.124384s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing [0.062325s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.121281s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.095439s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance [0.063591s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IloUefiHttpsBootTestCase.test_validate_rescue [0.235462s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_description_unsupported_missing [0.074542s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode [0.071600s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver [0.076486s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.091349s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.094339s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.070948s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.146946s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.103712s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.079985s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue [0.108225s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.110391s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_fault_supported_missing [0.110645s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated [0.084665s] ... ok
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_rescue_no_rescue_ramdisk [0.053764s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_fault_supported_untouched [0.101050s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.030743s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.032122s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.072446s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.039009s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.213441s] ... ok
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_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.029862s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.078045s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.045373s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca [0.029791s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.038958s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.077096s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.033532s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.041127s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_missing [0.083874s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.033849s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.257909s] ... ok
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_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir [0.036376s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_set [0.077278s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file [0.030861s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.026095s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.032696s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false [0.115832s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_firmware_unsupported_missing [0.079810s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.028431s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true [0.064812s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_default [0.069935s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.074955s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error [0.062889s] ... ok
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_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.032574s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk [1.087835s] ... ok
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_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.026083s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_non_default [0.095780s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false [0.026156s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported [0.080635s] ... ok
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_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true [0.026433s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value [0.046525s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_remove [0.092425s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http [0.077568s] ... ok
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_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false [0.027211s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.168900s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.036736s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing [0.083909s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.039022s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set [0.055436s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia [0.121160s] ... ok
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_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities [0.047334s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.100212s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing [0.076535s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.079056s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default [0.078179s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.123816s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.109090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default [0.081383s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.081046s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test__execute_ilo_step_ok [0.115295s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove [0.070967s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.327431s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.074341s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.044026s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.070823s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.070502s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params [0.181268s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean [0.173085s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_owner_unsupported_missing [0.056000s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.062736s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.061431s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty [0.068800s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy [0.143637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.055725s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode [0.198418s] ... ok
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_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.074758s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.094437s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok [0.075251s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.124241s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_protected_supported_missing [0.070599s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean [0.195342s] ... ok
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_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.057368s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.095618s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.076525s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.121240s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_protected_unsupported_missing [0.090342s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy [0.209056s] ... ok
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.Ilo5ManagementTestCase.test_clear_ca_certificates [0.141710s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.105610s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.251560s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.085774s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag [0.141464s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_rescue_supported_missing [0.101437s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean [0.255002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.160858s] ... ok
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.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error [0.135310s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_rescue_supported_set [0.082179s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.071492s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported [0.141339s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy [0.192586s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.184694s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.087969s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.071352s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean [0.189045s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.088003s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.182941s] ... ok
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.Ilo5ManagementTestCase.test_erase_devices_completed [0.207539s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_retired_supported_missing [0.065941s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set [0.062294s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy [0.141772s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.163684s] ... ok
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.Ilo5ManagementTestCase.test_erase_devices_hdd [0.211643s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_retired_unsupported_missing [0.114769s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.157154s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default [0.117572s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean [0.250615s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_retired_unsupported_set_remove [0.106007s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.245611s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_update_redfish_properties [0.182489s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.094007s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values [0.113030s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy [0.227455s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.102950s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.260602s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param [0.108776s] ... ok
{1} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.096682s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param [0.082937s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license [0.250756s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_traits_supported_set [0.119665s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.074398s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.167469s] ... ok
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.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.077100s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_traits_unsupported_missing [0.104825s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha256 [0.121163s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.070716s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.074145s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.217602s] ... ok
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.Ilo5ManagementTestCase.test_erase_devices_ssd [0.085490s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestMisc.test_max_version [0.075935s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.046510s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.097840s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestMisc.test_max_version_two [0.053630s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate [0.145406s] ... ok
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.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [0.057764s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test__from_db_object [0.057648s] ... ok
{2} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_one_button_secure_erase [0.070352s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test__from_db_object_map_version_bad [0.065409s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.045047s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl [0.162636s] ... ok
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.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error [0.051122s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_as_dict [0.065922s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_interface_not_in_all_interfaces [0.089624s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_as_dict_with_nested_object [0.060324s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl [0.142415s] ... ok
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.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_chassis_id_subtype [0.066094s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_as_dict_with_nested_object_list [0.071116s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_port_id_subtype [0.067181s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_assign_value_without_DictCompat [0.054399s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_invalid_tlv_value_hex_format [0.057118s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_base_attributes [0.047711s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception [0.152161s] ... ok
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.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_lldp_none [0.059090s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_changed_1 [0.064481s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_no_port_in_ironic [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.objects.test_objects.TestObject.test_changed_2 [0.065005s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.155612s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_changed_3 [0.045989s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_id_subtype_mac [0.105189s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_changed_4 [0.052744s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_port_local_link_connection_already_exists [0.052241s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_changes_in_primitive [0.048707s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha512 [1.026684s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.154841s] ... ok
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.hooks.test_local_link_connection.LocalLinkConnectionTestCase.test_valid_data [0.067653s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_contains [0.054419s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_physical_network.PhysicalNetworkTestCase.test_physical_network [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.objects.test_objects.TestObject.test_convert_to_version_new [0.109977s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.143922s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_add_ports [0.076873s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_convert_to_version_old [0.090926s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_duplicates [0.095774s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.264770s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.144031s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.071452s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.073911s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.046579s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_added [0.154791s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_clear_secure_boot_keys [0.148230s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_console.IloConsoleInterfaceTestCase.test_validate [0.184124s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_do_version_changes_for_db [0.059419s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_all [0.117075s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_do_version_changes_for_db_downgrade [0.093440s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr [0.182967s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_do_version_changes_for_db_pinned [0.069549s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_present [0.106684s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_console.IloConsoleInterfaceTestCase.test_validate_exc [0.209486s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_get [0.068298s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_pxe_enabled [0.090168s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_file_based_fw_to_copies_file_to_target [0.104132s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.077514s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_multiple_new_root_devices [0.055041s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component [0.187847s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_get_changes_pinned [0.059076s] ... 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.082434s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_new_root_devices [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(
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_previous_inventory [0.044834s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_http_based_fw_to_downloads_the_fw_file [0.095263s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.151569s] ... ok
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.hooks.test_raid_device.RaidDeviceTestCase.test_no_serials [0.053398s] ... ok
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.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_already_set [0.044912s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_http_based_fw_to_gets_invoked_for_http_based_firmware [0.089547s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot [0.166769s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_calls__download_http_based_fw_to [0.115917s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.170748s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.220639s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.076543s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_found [0.405975s] ... ok
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.hooks.test_root_device.RootDeviceTestCase.test_all_match [0.061707s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.145002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_get_changes_pinned_2versions [0.685967s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.142379s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_first_match_on_skip_list_use_second [0.097897s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_get_target_version_no_pin [0.063355s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode [0.130055s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.049483s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_incorrect_hint [0.063903s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_get_target_version_pinned_bad [0.059929s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.156357s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.057402s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail [0.129358s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_local_gb_without_spacing [0.127424s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_get_updates [0.055812s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload [0.123484s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.045303s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.126972s] ... ok
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.hooks.test_root_device.RootDeviceTestCase.test_no_hints [0.109620s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_hydration_bad_ns [0.050029s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.102605s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.051022s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_one_matches [0.076001s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_sets_loc_obj_remove_to_webserver [0.066936s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.042786s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.131319s] ... ok
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.hooks.test_root_device.RootDeviceTestCase.test_root_device_skip_list [0.083623s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_load_in_base [0.058950s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.079354s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.042458s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_invalid [0.052627s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.058943s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.050142s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.130259s] ... ok
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.hooks.test_root_device.RootDeviceTestCase.test_size_string [0.094143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObject.test_obj_constructor [0.070359s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.107271s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.043984s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_zero_size [0.077383s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ [0.120374s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.072372s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.061242s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_error [0.061743s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.046376s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.089900s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_ok [0.048989s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ [0.116170s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.050175s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.049630s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_custom_params [0.090239s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.061178s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ [0.126471s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.092626s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object [0.051410s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_disable_power_off [0.071265s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.045834s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.048467s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.057249s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.137461s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.091084s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_error [0.115694s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.050254s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.051922s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.046556s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.034802s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.047058s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.127095s] ... ok
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.InspectHardwareTestCase.test_managed_fast_track [0.141396s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.080813s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.076046s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.059149s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track_via_driver_info [0.101375s] ... ok
{1} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly [0.089741s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.071459s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.195817s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPortObject.test_create [0.069742s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.072106s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_ok [0.123002s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_require_managed_boot [0.037095s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.050053s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address [0.074099s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_error [0.052812s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.047061s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.166923s] ... ok
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.InspectHardwareTestCase.test_unmanaged_ok [0.042479s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address [0.079755s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_ok [0.035884s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.096262s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPortObject.test_get_by_id [0.082004s] ... ok
{2} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_require_managed_boot [0.054825s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.075429s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.214902s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_name [0.111133s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.100745s] ... ok
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_bios.IRMCBIOSTestCase.test_apply_configuration [0.191787s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPortObject.test_get_by_uuid [0.082312s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.090876s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPortObject.test_list [0.077690s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.231595s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.131454s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPortObject.test_list_deprecated_owner [0.063974s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.055583s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.150283s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPortObject.test_refresh [0.089623s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.058958s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.102298s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPortObject.test_save_after_refresh [0.107466s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.110670s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPortObject.test_supports_is_smartnic_supported [0.057773s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.070930s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.117365s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.602659s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestPortObject.test_supports_physical_network_supported [0.057921s] ... ok
{1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.050046s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update [0.080495s] ... ok
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.IRMCPXEBootTestCase.test_clean_up_instance [0.125713s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.pxe_filter.test_service.TestManager.test_init_and_run [0.077207s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail [0.060638s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.063330s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes [0.092469s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance [0.143564s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_set_boot_device_ok [0.075862s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_throws_error_if_checksum_validation_fails [0.865322s] ... ok
{1} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes_with_discovery [0.061760s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.071257s] ... ok
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.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.126358s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.pxe_filter.test_service.TestSync.test_nothing_on_inspection [0.090051s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.065944s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_verifies_checksum_of_downloaded_fw_file [0.199676s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode [0.079100s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed.
  debtcollector.deprecate(
{1} ironic.tests.unit.pxe_filter.test_service.TestSync.test_sync [0.114396s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.131483s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_verify_firmware_update_args_throws_for_invalid_update_mode [0.040846s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.020660s] ... ok
{1} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.061573s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_elcm_error [0.087508s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [0.056343s] ... ok
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_fail_invalid_json [0.084866s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail [0.182265s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.081286s] ... ok
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.068526s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.100653s] ... ok
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_500 [0.071462s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.070704s] ... ok
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_get_irmc_client [0.068143s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.219371s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system [0.063225s] ... ok
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_get_irmc_report [0.063871s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception [0.060333s] ... ok
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_auth_method [0.063219s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso [0.045608s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.055124s] ... ok
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_port [0.060440s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.185112s] ... ok
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.080227s] ... ok
{0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_create_subscription [0.139968s] ... ok
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_fail [0.119957s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.219400s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_vendor.VendorPassthruTestCase.test_validate_operation_exeption [0.132288s] ... ok
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.145956s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.154094s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.136602s] ... ok
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.060355s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.086351s] ... ok
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.084711s] ... ok
{0} ironic.tests.unit.drivers.modules.inspector.hooks.test_cpu_capabilities.CPUCapabilitiesTestCase.test_cpu_capabilities [0.143409s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_auth_failure_logging_threshold [0.069025s] ... ok
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.098800s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.109221s] ... ok
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.111941s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.083610s] ... ok
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.078966s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.125495s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.167258s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.154174s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.091834s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.094406s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_client.GetClientTestCase.test_get_client [0.918583s] ... ok
{2} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_version_set [0.712763s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.139173s] ... ok
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.053592s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.060826s] ... ok
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.059347s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.117048s] ... ok
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_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.108385s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [0.082745s] ... ok
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_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_corrupted [0.122393s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.059941s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.058768s] ... ok
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_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed [0.104942s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.062905s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.054322s] ... ok
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_management.IRMCManagementFunctionsTestCase.test_backup_bios_config [0.144097s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_update_minimum_password_length [0.073157s] ... ok
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_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_failed [0.101523s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_validate [0.097276s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean [0.055067s] ... ok
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_management.IRMCManagementFunctionsTestCase.test_backup_bios_config_skipped [0.100002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy [0.053464s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_client.GetClientTestCase.test_get_client_connection_problem [0.938259s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save [0.130722s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean [0.127462s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy [0.089389s] ... ok
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.163113s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean [0.067048s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy [0.064917s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed [0.051837s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild [0.055649s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry [0.171527s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.041865s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.032761s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_ilo6_redirect [0.050677s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry [0.139009s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.041050s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.145481s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_client.GetClientTestCase.test_get_client_standalone [0.800419s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed [0.158732s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.108147s] ... ok
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.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.105424s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.093989s] ... ok
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.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed [0.088468s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.059748s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.077502s] ... ok
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.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.079757s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.079579s] ... ok
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.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.094890s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.073388s] ... ok
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.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track [0.086372s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance [0.058066s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... SKIPPED: bug #2025424
{2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate [0.104354s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.114963s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.092894s] ... ok
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.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset [0.155836s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.053185s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.057946s] ... ok
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.RedfishBiosTestCase.test_apply_configuration_fail [0.108165s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.055809s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... SKIPPED: bug #2025424
{2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_apply_time_attr [0.096718s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.073164s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.059657s] ... ok
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.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times [0.093321s] ... ok
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.RedfishBiosTestCase.test_apply_configuration_not_supported [0.064101s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.092335s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.066108s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.077168s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [0.142189s] ... ok
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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.028458s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate [0.063260s] ... ok
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.RedfishBiosTestCase.test_cache_bios_settings [0.439497s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.053297s] ... ok
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.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.063702s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.052518s] ... ok
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.RedfishBiosTestCase.test_cache_bios_settings_noop [0.074284s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.070090s] ... ok
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.RedfishBiosTestCase.test_check_bios_attrs [0.054080s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.049582s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.060838s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.073401s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.091097s] ... ok
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.RedfishBiosTestCase.test_factory_reset_not_supported [0.051824s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.121454s] ... ok
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.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.106522s] ... ok
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.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.097704s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.166086s] ... ok
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.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.100969s] ... ok
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.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.189104s] ... ok
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.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track [0.133499s] ... ok
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.RedfishBiosTestCase.test_get_properties [0.044952s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.530310s] ... ok
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.RedfishBiosTestCase.test_post_configuration [0.141894s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.086436s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.119833s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok [1.050869s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state [0.048672s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.042615s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.113761s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.087537s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.043285s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.087688s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.060789s] ... ok
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_power.RedfishPowerTestCase.test_reboot_fail [0.117283s] ... ok
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_power.RedfishPowerTestCase.test_reboot_fail_on_power_on [0.103649s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.122207s] ... ok
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_power.RedfishPowerTestCase.test_reboot_from_power_off [0.096116s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.117938s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.081695s] ... ok
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_power.RedfishPowerTestCase.test_reboot_from_power_off_with_disable_power_off [0.112568s] ... ok
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_power.RedfishPowerTestCase.test_reboot_from_power_on [0.231217s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.320660s] ... ok
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_power.RedfishPowerTestCase.test_reboot_from_power_on_with_disable_power_off [0.369490s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.300145s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.152081s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached [0.268416s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.272035s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.568753s] ... ok
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_power.RedfishPowerTestCase.test_set_power_state [0.338680s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.427808s] ... ok
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_power.RedfishPowerTestCase.test_set_power_state_fail [0.466232s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.418973s] ... ok
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_power.RedfishPowerTestCase.test_set_power_state_not_reached [0.335643s] ... ok
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_power.RedfishPowerTestCase.test_validate [0.238670s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service [0.139767s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.473451s] ... ok
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_utils.RedfishUtilsTestCase.test_get_event_service_error [0.155566s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection [0.149243s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.399302s] ... ok
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_utils.RedfishUtilsTestCase.test_get_system_collection_error [0.166360s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor [0.168477s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.141459s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error [0.147879s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.529729s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.312515s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.137768s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca [0.167920s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca [0.167664s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.127274s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.103551s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.119975s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password [0.130523s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto [0.166438s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.123251s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service [1.832024s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.126037s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error [0.183663s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password [0.139534s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto [0.129672s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.175064s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.106371s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.149161s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user [0.127989s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_ipv6_brackets_added [0.129398s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.125833s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.141976s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips [0.126620s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.146294s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.111512s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.169667s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca [0.165259s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.121606s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.236814s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.191598s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.053747s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.088116s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.108514s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.228593s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.124290s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id [0.101284s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.227489s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.129607s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password [0.152398s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.193968s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password [0.258991s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.193000s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user [0.216518s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.166476s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix [0.147087s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.202549s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password [0.094680s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription [0.146095s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password [0.067553s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 [0.068762s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription [0.119655s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca [0.074403s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all [0.097909s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security [0.066222s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.040979s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_snmp_driver_info_with_snmp [0.037056s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd [0.150344s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.094207s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions [0.204260s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.212157s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty [0.174103s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_ipmi [0.225314s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist [0.254860s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_redfish [0.323712s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists [0.280848s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription [0.261671s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning [0.392759s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription [0.261590s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription [0.269319s] ... ok
{2} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev [0.340124s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.215287s] ... ok
{2} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.538635s] ... ok
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.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.354049s] ... ok
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 [0.203294s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [2.067348s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result [0.249365s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.319246s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result2 [0.293888s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.342657s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean [0.250392s] ... ok
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_deploy [0.172914s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.376546s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final [0.238686s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none [0.273439s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered [0.280329s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.221831s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration [0.257696s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.174408s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.157835s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration [0.237755s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.138594s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.160718s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config [0.319551s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__is_expected_power_state [0.141740s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping [0.178618s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state [0.239408s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot [0.176663s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.177593s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root [0.203872s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_on_ok [0.171956s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration [0.221829s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [0.252167s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [3.925556s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps [0.278712s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception [0.278045s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.166223s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority [0.303166s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [0.185002s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_deploy_steps [0.246636s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.261084s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot [0.319438s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off [1.257147s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_boot_loader_install_fail [0.438161s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.278690s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.214813s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [2.165896s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_never [1.309078s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_lenovo [0.362808s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid [0.272116s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid_whole_disk [0.311321s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout [3.277431s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_non_software_raid [0.301546s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_create_raid_cleaning [0.358636s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid [0.283518s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [2.209974s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_bios [0.327431s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_create_raid_deploying [0.430562s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_bios [0.306635s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.281960s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_uefi [0.249138s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_deploying [0.270772s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid [0.335791s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cleaning [0.267410s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios [0.253818s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_deploying [0.302608s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_empty_target_raid_config_cleaning [0.233057s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_set_boot_device_fail [0.580406s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_empty_target_raid_config_deploying [0.288444s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_uefi [0.328562s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ilo_error_cleaning [0.399321s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [2.292920s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image [0.295790s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ilo_error_cleaning_deploying [0.303322s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image_bios [0.311586s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_get_power_state_default [0.497262s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cleaning [0.386936s] ... ok
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.ConfigureLocalBootTest.test_configure_local_boot_with_prep [0.393176s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_get_power_state_ipmi [0.453571s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.395290s] ... ok
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.PrepareInstanceToBootTest.test_prepare_instance_to_boot [0.387461s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.326215s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_get_power_state_redfish [0.419170s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties [0.223931s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot_configure_fails [0.352434s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_deploying [0.334841s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_reboot_power_on [0.328200s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.270026s] ... ok
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.PrepareInstanceToBootTest.test_prepare_instance_to_boot_localboot_prep_partition [0.362076s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.260220s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.306436s] ... ok
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.TestAgentDeploy.test_clean_up [0.351483s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_reboot_reboot [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(
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.376338s] ... ok
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.TestAgentDeploy.test_clean_up_disable_power_off [0.306126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.249488s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.347890s] ... ok
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.TestAgentDeploy.test_deploy [0.322707s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_set_power_state [0.259551s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_set_power_state_timeout [0.239610s] ... ok
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.TestAgentDeploy.test_deploy_fast_track [0.400323s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_validate_default [0.196057s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.502854s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_validate_fail_ipmi [0.188771s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.282084s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_validate_fail_redfish [0.217933s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.586923s] ... ok
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.TestAgentDeploy.test_deploy_with_deployment_reboot [0.400170s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_power.IRMCPowerTestCase.test_validate_ipmi [0.321728s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_redfish [0.280276s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.318232s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cleaning [0.455062s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.231544s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.301680s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none [0.234477s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.198278s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.415694s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.224097s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_service_steps [0.308125s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level [0.213058s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.400501s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.238243s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.162916s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.373358s] ... ok
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.TestAgentDeploy.test_prepare [0.525415s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.178112s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 [0.176644s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.364020s] ... ok
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.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.469224s] ... ok
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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.197928s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 [0.142950s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.306899s] ... ok
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.TestAgentDeploy.test_prepare_adopting [0.300577s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.166938s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.113869s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.418735s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type [0.208110s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume [0.434040s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks [0.244471s] ... ok
{3} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.352917s] ... ok
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.TestAgentDeploy.test_prepare_cleaning [0.322387s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.256003s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.238383s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track [0.333520s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.499380s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.138156s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks [0.161244s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.308394s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.309003s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.288923s] ... ok
{0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_slots_2 [0.283707s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.562554s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_architecture.ArchitectureTestCase.test_architecture [0.530126s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks [0.170732s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot [0.284424s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot_mode.BootModeTestCase.test_boot_mode [0.251893s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address [0.376567s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_extra_hardware.ExtraHardwareTestCase.test_extra_hardware_with_errors [0.217361s] ... ok
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.TestAgentDeploy.test_prepare_instance_boot_localboot [0.290368s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_off [0.216968s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.304959s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_on [0.252419s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_extra_hardware.ExtraHardwareTestCase.test_no_data_received [0.226179s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_extra_hardware.ExtraHardwareTestCase.test_valid_extra_hardware [0.290506s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.979496s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{0} 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
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994
{3} ironic.tests.unit.drivers.modules.inspector.hooks.test_memory.MemoryTestCase.test_memory [0.328577s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.170673s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot [1.417964s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_parse_lldp.ParseLLDPTestCase.test_all_valid_data [0.220265s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.243789s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image [0.367373s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_parse_lldp.ParseLLDPTestCase.test_bad_value_linkagg [0.274707s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.269854s] ... ok
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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.138661s] ... ok
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.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_macphy [0.266421s] ... ok
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.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 [0.397929s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.197306s] ... ok
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.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_chassis_ids [0.242754s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.193199s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic [0.311273s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.194169s] ... ok
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.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_duplicate_tlvs [0.286751s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_parse_lldp.ParseLLDPTestCase.test_invalid_ip [0.224446s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_parse_lldp.ParseLLDPTestCase.test_multiple_interfaces [0.144772s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.364338s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.507733s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_parse_lldp.ParseLLDPTestCase.test_null_strings [0.113133s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_parse_lldp.ParseLLDPTestCase.test_old_format [0.114580s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.300598s] ... ok
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.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_int [0.146566s] ... ok
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.TestAgentDeploy.test_prepare_rescue_states [0.402857s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_service [0.135851s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.472750s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_storage_write_false [0.253539s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.208674s] ... ok
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(
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net [0.214671s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_parse_lldp.ParseLLDPTestCase.test_truncated_mac [0.822420s] ... ok
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.TestAgentDeploy.test_prepare_with_smartnic_port [0.169318s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.278463s] ... ok
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.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_oui [0.080011s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_parse_lldp.ParseLLDPTestCase.test_unhandled_tlvs [0.055401s] ... ok
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.TestAgentDeploy.test_tear_down [0.179379s] ... ok
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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.147875s] ... ok
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.TestAgentDeploy.test_tear_down_cleaning [0.085496s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.094666s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cleanup_failed [0.210829s] ... ok
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.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.079356s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.092044s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.100430s] ... ok
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.TestAgentDeploy.test_tear_down_disable_power_off [0.149519s] ... ok
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.inspector.test_agent.AbortInspectionTestCase.test_success [0.189353s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CheckStatusTestCase.test_exception_ignored [0.090474s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.127675s] ... ok
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.TestAgentDeploy.test_tear_down_service [0.117458s] ... ok
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.TestAgentDeploy.test_tear_down_service_disable_power_off [0.088783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CheckStatusTestCase.test_not_check_inspecting [0.117317s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.184307s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CheckStatusTestCase.test_not_finished [0.084660s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.120226s] ... ok
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.inspector.test_interface.CheckStatusTestCase.test_not_inspecting [0.096188s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate [0.079469s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.121889s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CheckStatusTestCase.test_not_inspector [0.104914s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false [0.120826s] ... ok
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.TestAgentDeploy.test_validate_file_image_no_checksum [0.081112s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CheckStatusTestCase.test_status_clean_up_failed [0.151830s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.254055s] ... ok
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.TestAgentDeploy.test_validate_instance_info_missing_params [0.076173s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CheckStatusTestCase.test_status_error [0.110204s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type [0.163285s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.192032s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CheckStatusTestCase.test_status_error_dont_store_inventory [0.098132s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies [0.065392s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok [0.065639s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.093674s] ... ok
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.TestAgentDeploy.test_validate_invalid_root_device_hints [0.061611s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory [0.048192s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory_nostore [0.043510s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.086995s] ... ok
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.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo [0.067127s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint [0.030249s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_mdns [0.041279s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.091880s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback [0.068894s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.064487s] ... ok
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.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.162337s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CommonFunctionsTestCase.test_get_callback_endpoint_override [0.063792s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.077831s] ... ok
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.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo [0.091751s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.CommonFunctionsTestCase.test_get_properties [0.070191s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_validate_ok [0.035193s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach [0.072695s] ... ok
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.TestAgentDeploy.test_validate_nonglance_image_no_os_algo [0.061468s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.TearDownManagedInspectionTestCase.test_boot_clean_up_failed [0.072127s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum [0.087107s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.108203s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.TearDownManagedInspectionTestCase.test_managed [0.072440s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash [0.102145s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.TearDownManagedInspectionTestCase.test_managed_disable_power_off [0.056230s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off [0.036448s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off_on_fast_track [0.035204s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_oci_no_checksum [0.085581s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.184835s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.TearDownManagedInspectionTestCase.test_network_clean_up_failed [0.053821s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.072665s] ... ok
{3} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged [0.033936s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.092629s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_interface.TearDownManagedInspectionTestCase.test_unmanaged_force_power_off [0.047384s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image [0.089797s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.064938s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.060615s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.063640s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.094100s] ... ok
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.TestAgentDeploy.test_write_image_basic_auth_success [0.131141s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.062810s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.057446s] ... ok
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.TestAgentDeploy.test_write_image_basic_auth_success_blocked [0.078878s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.054821s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.075715s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.053671s] ... ok
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.TestAgentDeploy.test_write_image_image_source_is_url [0.083745s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.071342s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.050902s] ... ok
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.TestAgentDeploy.test_write_image_oci_authorization [0.063208s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.044531s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.093875s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.051172s] ... ok
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.TestAgentDeploy.test_write_image_partition_image [0.069407s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.054414s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.074251s] ... ok
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.TestAgentDeploy.test_write_image_render_configdrive [0.076835s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.047983s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.077591s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.033056s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies [0.081039s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.031068s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.040638s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.072954s] ... ok
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.TestAgentDeploy.test_write_image_with_proxies [0.075106s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated [0.040112s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.068185s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.032027s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params [0.031067s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf [0.036831s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info [0.030404s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.041129s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.061835s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.030630s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated [0.034118s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.027971s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.029720s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.030750s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.398086s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.044053s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.092796s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_execute_bootc_install [0.655344s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.122299s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_set_boot_to_disk [0.113909s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.077889s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.372354s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.043967s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.049606s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.105305s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.031040s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_set_boot_to_disk_lenovo [0.147950s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.062526s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate [0.060221s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.126171s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.036861s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_image_source_not_set [0.082699s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.120399s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.051604s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_with_non_oci [0.068297s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.046488s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.074205s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.059693s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up [0.084836s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.075334s] ... ok
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.TestCustomAgentDeploy.test_clean_up_disable_power_off [0.069511s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.100548s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.062846s] ... ok
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.TestCustomAgentDeploy.test_deploy [0.067080s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.062655s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.090891s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.041188s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy_fast_track [0.099303s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.060167s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.072098s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.078002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.062858s] ... ok
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.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false [0.124619s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.067104s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.132292s] ... ok
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.TestCustomAgentDeploy.test_deploy_with_deployment_reboot [0.132974s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.056185s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.130296s] ... ok
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.TestCustomAgentDeploy.test_get_properties [0.075881s] ... ok
{0} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.087714s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.098262s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare [0.084500s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup [0.076819s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated [0.058069s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.063340s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.074376s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_disable_power_off [0.123951s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_clean_up_instance_only_cdrom [0.100743s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.065754s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.039724s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.063433s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.062742s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_clean_up_instance_ramdisk [0.215218s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare_fast_track [0.270969s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_rescue [0.071502s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.076564s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_clean_up_ramdisk [0.141918s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate [0.143994s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.073099s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_deploy_info [0.044184s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.053896s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_deploy_info_exc [0.061858s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue [0.093962s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_get_properties [0.043301s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.051000s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result [0.053961s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.048899s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance [0.078137s] ... ok
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_exc [0.063478s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.046782s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result [0.051720s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_instance_active [0.071363s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.054736s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.064391s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.050957s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart [0.087781s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.055748s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning [0.079915s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios [0.089443s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_deploy [0.065758s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_exc [0.039173s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_lenovo [0.057708s] ... ok
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.ContinueCleaningTest.test_continue_cleaning_after_reboot [0.110658s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy [0.063151s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch [0.079321s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.104299s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.045209s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue [0.049538s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail [0.066602s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.092175s] ... ok
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.ContinueCleaningTest.test_continue_cleaning_fail [0.074744s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.096493s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_iso [0.073382s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch [0.087524s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.130880s] ... ok
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.ContinueCleaningTest.test_continue_cleaning_no_step_running [0.069743s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy [0.087552s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios [0.082593s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.063206s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_old_command [0.087899s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.090598s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue [0.038954s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot [0.106536s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.100516s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.092389s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_ramdisk [0.137490s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_rescue [0.069630s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_running [0.244068s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.241815s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_boot_option [0.108695s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown [0.135640s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.123414s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_whole_disk_image [0.081437s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios [0.101256s] ... ok
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.ContinueCleaningTest.test_continue_cleaning_with_hook [0.120235s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.096628s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_prepare_instance_normal_boot [0.176280s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails [0.104552s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot [0.074114s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_manual_cleaning [0.085327s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.084019s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps [0.091018s] ... ok
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.TestRefreshCleanSteps.test_refresh_steps_busy [0.072701s] ... ok
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.TestRefreshCleanSteps.test_refresh_steps_deploy [0.064025s] ... ok
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.TestRefreshCleanSteps.test_refresh_steps_missing_interface [0.067837s] ... ok
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.TestRefreshCleanSteps.test_refresh_steps_missing_steps [0.068129s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.480638s] ... ok
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_client.TestAgentClientAttempts.test__command_fail_agent_token_required [0.029676s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.026012s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.022584s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.023634s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.427296s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_agent_already_down [0.021404s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay [0.026272s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay_with_fail_if_unavailable [0.023484s] ... ok
{2} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_timeout [0.022605s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.204435s] ... ok
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_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios [0.020574s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.104702s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_fast_track [0.067328s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.107987s] ... ok
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.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_no_debug [0.057662s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.082420s] ... ok
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.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_with_params [0.111591s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_validate_boot_iso [0.044603s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.121912s] ... ok
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.313361s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_correct_vendor [0.040408s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.025727s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.042610s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_errors_with_lack_of_support [0.038303s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set [0.025605s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.020481s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.044674s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.022227s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_inspection [0.050417s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.021563s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.045214s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot [0.019621s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi [0.019563s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.046553s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_kernel_ramdisk [0.064029s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure [0.049386s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_validate_local [0.040042s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.073974s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception [0.046895s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_boot.RedfishHTTPBootTestCase.test_validate_missing [0.046794s] ... ok
{2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested [0.038873s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_validate_inspection [0.061370s] ... ok
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_configure_unsupported [0.039494s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean [0.091390s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk [0.055740s] ... ok
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 [0.046014s] ... ok
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.040299s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set [0.059752s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy [0.082945s] ... ok
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_none_requested [0.051175s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id [0.070492s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create [0.069260s] ... ok
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_unsupported [0.044308s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot [0.041936s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios [0.025870s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback [0.021580s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete [0.059976s] ... ok
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.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios [0.022429s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local [0.056053s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch [0.021867s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller [0.055571s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi [0.026178s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.050657s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi [0.020871s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller_no_controllers [0.030307s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.020098s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template [0.023874s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.017881s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_controllers [0.029550s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none [0.027043s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.028903s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_empty [0.030932s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.025536s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios [0.049546s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_storage_controllers [0.030193s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.034722s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback [0.029292s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller [0.040200s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.021793s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.025532s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 [0.037932s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.042169s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 [0.059659s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.035783s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.139579s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 [0.031003s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default [0.022078s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.021109s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 [0.027892s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.052619s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.042990s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.043674s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.022433s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed [0.105340s] ... ok
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.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.021164s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.133730s] ... ok
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.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios [0.024276s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.026781s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.033973s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing [0.107512s] ... ok
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.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.048522s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.131901s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success [0.070775s] ... ok
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.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.057094s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.061154s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error [0.070637s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.054672s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 [0.048133s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.101590s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 [0.048218s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.067974s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.051251s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.100037s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a [0.063962s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.052109s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_checksum [0.049534s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.025882s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed [0.049624s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_with_auth [0.027755s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b [0.118348s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy [0.028577s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.033308s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.030798s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.032968s] ... ok
{3} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.137349s] ... ok
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.OtherFunctionTestCase.test_get_ironic_api_url_none [0.027576s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy [0.024128s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false [0.024343s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid [0.028294s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false [0.041728s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate [0.387147s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.138084s] ... ok
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.irmc.test_inspect.IRMCInspectTestCase.test_validate [0.321313s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset [0.053364s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.072506s] ... ok
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_inspect.IRMCInspectTestCase.test_validate_fail [0.041117s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 [0.076580s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.065407s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset [0.049535s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_overide [0.050494s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.131854s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test_create_config_case_3 [0.069556s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [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(
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [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(
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 [0.081070s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff [0.144001s] ... ok
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.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a [0.054044s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.066613s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test_create_config_case_5b [0.067648s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 [0.037740s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type [0.068863s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.175906s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test_delete_config_immediate [0.076245s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.305686s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid [0.163445s] ... ok
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.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.119777s] ... ok
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.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.081720s] ... ok
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_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.059550s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.176245s] ... ok
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.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.042412s] ... ok
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.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.044442s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.127844s] ... ok
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.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.070039s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test_delete_config_on_reset [0.434806s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.042929s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test_get_physical_disks [0.043061s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.127556s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type [0.049030s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.082645s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test_validate_raid_config [0.041352s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi [0.073093s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.107325s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.143352s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_raid.RedfishRAIDTestCase.test_volume_create_error_handler [0.044542s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.062649s] ... ok
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.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto [0.054785s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source [0.036729s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict [0.031387s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [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(
{0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic [0.052520s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id [0.029042s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.048401s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session [0.076106s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.028438s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid [0.122288s] ... ok
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.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.024219s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache [0.063185s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot [0.027079s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.027239s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching [0.065853s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy [0.037848s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only [0.024215s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid [0.127725s] ... ok
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_good [0.035111s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address [0.090472s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.025634s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda [0.032168s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.037351s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.035785s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password [0.132357s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.037305s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs [0.223548s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username [0.079458s] ... ok
{2} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy [0.072631s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.082364s] ... ok
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_whole_disk_image [0.059589s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse [0.085567s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.079850s] ... ok
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.TestFetchCleanup.test__fetch [0.069926s] ... ok
{0} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions [0.084203s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_gpt [0.037540s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.067847s] ... ok
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.TestFetchCleanup.test__fetch_already_raw [0.031931s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.056402s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.055755s] ... ok
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.TestFetchCleanup.test__fetch_convert_to_gpt [0.051330s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.052557s] ... ok
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.TestFetchCleanup.test__fetch_deep_inspection_disabled [0.050543s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.064635s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.054495s] ... ok
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.TestFetchCleanup.test__fetch_disable_validation [0.060412s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.070535s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.060463s] ... ok
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.TestFetchCleanup.test__fetch_estimate_fallback [0.040752s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [0.052691s] ... ok
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.TestFetchCleanup.test__fetch_format_does_not_match_glance [0.024467s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data [0.047387s] ... ok
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.TestFetchCleanup.test__fetch_not_safe_image [0.027497s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.046245s] ... ok
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.TestFetchCleanup.test__fetch_part_already_exists [0.031803s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.070137s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.048961s] ... ok
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.TestFetchCleanup.test__fetch_ramdisk_image [0.051490s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_kernel [0.032436s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.075765s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.058424s] ... ok
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.TestFetchCleanup.test__fetch_with_image_auth [0.030043s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image [0.020682s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.048167s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.069796s] ... ok
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_disable_validation [0.042584s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url [0.026353s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.050673s] ... ok
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_linkfail [0.035785s] ... ok
{2} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard [0.030433s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.063347s] ... ok
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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift [0.048371s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.067538s] ... ok
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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift_exception [0.044426s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.049500s] ... ok
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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__store_inspection_data_in_swift [0.042688s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db [0.039347s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.059984s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.341690s] ... ok
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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db_exception [0.052150s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.052989s] ... ok
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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_nostore [0.031467s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.052429s] ... ok
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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift [0.032292s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.080954s] ... ok
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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift_exception [0.034565s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network [0.062389s] ... ok
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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_db [0.067706s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.082975s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.060335s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.069917s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.096119s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_get_current_vif [0.042058s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.068951s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_get_node_network_data [0.086642s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.074447s] ... ok
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.network.test_noop.NoopInterfaceTestCase.test_get_properties [0.031412s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.046504s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.063388s] ... ok
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_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_nostore [0.328043s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_swift [0.027348s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.059424s] ... ok
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_inspect_utils.RunInspectionHooksTestCase.test_no_on_error [0.029951s] ... ok
{2} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_post_hook_on_error_callback [0.031987s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.074247s] ... ok
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_inspect_utils.RunInspectionHooksTestCase.test_pre_hook_on_error_callback [0.040960s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.054351s] ... ok
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.IPMIToolDriverTestCase.test__allocate_port [0.052313s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [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.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.059036s] ... ok
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.IPMIToolDriverTestCase.test__bmc_reset_fail [0.041871s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_portgroup_changed [0.322981s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.061017s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.044747s] ... ok
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.IPMIToolDriverTestCase.test__bmc_reset_ok [0.052029s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.054784s] ... ok
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.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.026932s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.025985s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network [0.064505s] ... ok
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.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.029771s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.082321s] ... ok
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.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.035479s] ... ok
{3} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.077592s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.054996s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.065973s] ... ok
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.IPMIToolDriverTestCase.test__release_allocated_port [0.098163s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.074384s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_validate [0.045296s] ... ok
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.IPMIToolDriverTestCase.test_detect_vendor [0.042447s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.081109s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_vif_attach [0.057115s] ... ok
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.IPMIToolDriverTestCase.test_dump_sdr_fail [0.084357s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_vif_detach [0.044105s] ... ok
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.IPMIToolDriverTestCase.test_dump_sdr_ok [0.042876s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_noop.NoopInterfaceTestCase.test_vif_list [0.047727s] ... ok
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.IPMIToolDriverTestCase.test_get_force_boot_device_persistent [0.052808s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device [0.055379s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.156187s] ... ok
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.IPMIToolDriverTestCase.test_get_power_state [0.045285s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device_inserted [0.034668s] ... ok
{0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.065989s] ... ok
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.IPMIToolDriverTestCase.test_get_power_state_exception [0.056432s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FreshlyBootedTestCase.test__freshly_booted_empty_result [0.031608s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_already_inserted [0.089341s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties [0.040887s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FreshlyBootedTestCase.test__freshly_booted_has_retries [0.026572s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_multi_command [0.042155s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew [0.059349s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok_bios [0.066508s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.FreshlyBootedTestCase.test__freshly_booted_single_command [0.055811s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device [0.045402s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd [0.076881s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.FreshlyBootedTestCase.test__freshly_booted_single_command_mismatch [0.057496s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.054156s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd_retry [0.059860s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.048303s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_bad_device [0.046306s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps [0.078327s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev [0.044098s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_while_ejecting [0.047840s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy [0.050606s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices [0.054983s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_everything [0.048392s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step [0.056772s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_from_all_resources [0.057943s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.078825s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_running [0.054045s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_not_inserted [0.045279s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch [0.046353s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.061165s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_specific [0.040617s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_deploy_step [0.054544s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_no_force_set_boot_device_bios [0.048012s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_unknown [0.051597s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_service_step [0.051390s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.048556s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.045555s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step [0.045611s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.046380s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_done [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(
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found [0.047345s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios [0.067925s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail [0.054651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.046861s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent_bios [0.052424s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail_servicing [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(
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_deploy_steps_only_oob [0.043599s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_custom_interface [0.043576s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.061170s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test__check_update_in_progress [0.059462s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_no_targets [0.033655s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps [0.049817s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci [0.065409s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_targets [0.041973s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities [0.070638s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_error [0.034739s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.081546s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_https [0.031752s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_swift [0.037607s] ... ok
{0} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none [0.074904s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci [0.057728s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.InstanceImageCacheTestCase.test_with_master_path [0.042986s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_conn_error [0.069447s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.067975s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.InstanceImageCacheTestCase.test_without_master_path [0.043033s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_still_waiting [0.062139s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios [0.051138s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.061489s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_check_update_task_monitor_not_found [0.060731s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_uefi [0.093622s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.085589s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_check_update_wait_elapsed [0.052030s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios [0.049011s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.047815s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_continue_update_waitting [0.051971s] ... ok
{0} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.041329s] ... ok
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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_uefi [0.066065s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config [0.041206s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail [0.048879s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetBMCAddressesTestCase.test_localhost_as_url_ignored [0.029007s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_ignored [0.033573s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.046239s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetBMCAddressesTestCase.test_normal_ip [0.033282s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate [0.055805s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetBMCAddressesTestCase.test_normal_ip_as_url [0.033145s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ipv6_as_url [0.030057s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.049081s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetBMCAddressesTestCase.test_redfish_bmc_address_ipv6_brackets_no_scheme [0.035988s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_disable_power_off [0.045901s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetBMCAddressesTestCase.test_resolved_host [0.047036s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last [0.337145s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.045651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.GetBMCAddressesTestCase.test_resolved_host_in_url [0.033456s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last_service [0.050484s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on [0.045452s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_continue_updates_more_updates [0.058893s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.050433s] ... ok
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.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.050166s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_create_all_components [0.087815s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.046270s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_empty_settings [0.060556s] ... ok
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.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.053476s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_empty_settings_service [0.051983s] ... ok
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.IPMIToolDriverTestCase.test_send_raw_bytes_from_clean_step [0.051187s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_get_properties [0.038397s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist [0.378467s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings [0.052260s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings_service [0.059209s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_attempts_port_creation_blindly [0.090736s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_missing_all_components [0.042498s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.060809s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.LookupCacheTestCase.test_clear [0.027630s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bios_component [0.093439s] ... ok
{0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_new_value [0.036059s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_is_in_step_list [0.325439s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.LookupCacheTestCase.test_replace_with_empty [0.030073s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bmc_component [0.075608s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok [0.059874s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.SwiftCleanUp.test_clean_up_swift_entries [0.094756s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings [0.075710s] ... ok
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.IPMIToolDriverTestCase.test_send_raw_bytes_returns [0.063595s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings_service [0.076073s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.SwiftCleanUp.test_clean_up_swift_entries_with_404_exception [0.113880s] ... ok
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.IPMIToolDriverTestCase.test_set_power_invalid_state [0.102007s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_missing_simple_update_action [0.059334s] ... ok
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.IPMIToolDriverTestCase.test_set_power_off_ok [0.053689s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exception [0.068325s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_firmware.RedfishFirmwareTestCase.test_missing_updateservice [0.080824s] ... ok
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.IPMIToolDriverTestCase.test_set_power_off_timeout_ok [0.048246s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exceptions [0.050131s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckInitTestCase.test_console_init_calls [0.020783s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates [0.056097s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.054606s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.028449s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.028745s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates_empty [0.040731s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok [0.058396s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.052532s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_validate [0.056903s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail [0.061085s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckInitTestCase.test_management_init_calls [0.039175s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done [0.052361s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.023744s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls [0.020013s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok [0.052137s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.019879s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.022456s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot [0.057840s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.023305s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail [0.099533s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.021026s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.018774s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.053334s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.028652s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.026204s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress [0.088829s] ... ok
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.IPMIToolDriverTestCase.test_set_soft_power_off_ok [0.049731s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.020725s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.020266s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok [0.046632s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error [0.049494s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.020061s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.019095s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.036442s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.065725s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting [0.078087s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.022409s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.025215s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail [0.049428s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.020569s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.018832s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found [0.072916s] ... ok
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.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.049236s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.020140s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.041489s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed [0.067251s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.045938s] ... ok
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.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold [0.095993s] ... ok
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(
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update [0.061204s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.038404s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates [0.046660s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.054541s] ... ok
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.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.090784s] ... ok
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.IPMIToolSocatDriverTestCase.test__start_console [0.043682s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__continue_firmware_updates_wait [0.074343s] ... ok
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.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes [0.070786s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__get_sensors_data_drive_simple_storage [0.043505s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password [0.071696s] ... ok
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.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes_with_http_method [0.073457s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__get_sensors_data_drive_storage [0.068001s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.061820s] ... ok
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.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes [0.043183s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.039972s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.041270s] ... ok
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.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.045905s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__get_sensors_power [0.049421s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate [0.037573s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.048679s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.035234s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.040520s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.032261s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed [0.034625s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good [0.046309s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate [0.034798s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd [0.049697s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail [0.054071s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.034429s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status [0.038133s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.041363s] ... ok
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.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.055887s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd [0.040384s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console [0.047239s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__stage_firmware_file_error [0.032695s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good [0.061744s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test__stage_firmware_file_https [0.033574s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port [0.063453s] ... ok
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.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes [0.048989s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift [0.047441s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port [0.044591s] ... ok
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.IPMIToolShellinaboxTestCase.test__exec_stop_console [0.045977s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolSocatDriverTestCase.test_stop_console [0.048323s] ... ok
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.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd [0.046644s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_attach_virtual_media [0.079668s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.046090s] ... ok
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.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user [0.046896s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipxe.iPXEHttpBootTestCase.test_http_boot_enabled [0.040098s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console [0.043603s] ... ok
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.IPMIToolShellinaboxTestCase.test__start_console_empty_password [0.055010s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk [0.079729s] ... ok
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.IPMIToolShellinaboxTestCase.test__start_console_fail [0.043599s] ... ok
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.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.044402s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_rescue [0.090067s] ... ok
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.IPMIToolShellinaboxTestCase.test_console_validate [0.037729s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot [0.305349s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.035126s] ... ok
{0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_uefi [0.070605s] ... ok
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.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.034932s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented [0.043363s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate [0.049178s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media [0.045224s] ... ok
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.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.032578s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media_all [0.055688s] ... ok
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.IPMIToolShellinaboxTestCase.test_get_console [0.041636s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_detect_vendor [0.034992s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console [0.056983s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_get_boot_device [0.039646s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.046253s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console_alloc_port [0.070410s] ... ok
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.IPMIToolShellinaboxTestCase.test_start_console_with_port [0.044484s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_get_indicator_state [0.070418s] ... ok
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.IPMIToolShellinaboxTestCase.test_stop_console [0.045486s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_get_indicator_state_disk [0.094247s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_pxe.PXEAnacondaDeployTestCase.test_deploy [0.423324s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_get_mac_addresses_missing_attr [0.044352s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found [0.039768s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end [0.123073s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_get_mac_addresses_success [0.045543s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.039468s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state [0.036534s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error [0.100573s] ... ok
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.IPMIToolShellinaboxTestCase.test_stop_console_fail [0.287658s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented [0.052164s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.043799s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_get_sensors_data [0.042769s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.042607s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start [0.116805s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.040701s] ... ok
{2} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.050422s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.036595s] ... ok
{2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios [0.024959s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare [0.083752s] ... ok
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_console [0.038668s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators [0.051562s] ... ok
{2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.032778s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_virtual_media [0.047692s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_pxe.PXEAnacondaDeployTestCase.test_prepare_active [0.065648s] ... ok
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.029182s] ... ok
{2} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.020897s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.047220s] ... ok
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_vendor [0.019092s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning [0.062449s] ... ok
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.HttpBootTestCase.test_http_boot_enabled [0.049644s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.076206s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_reset_secure_boot_to_default [0.037802s] ... ok
{0} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_reboot_to_instance [0.090912s] ... ok
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.HttpBootTestCase.test_prepare_ramdisk [0.078343s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented [0.041845s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ [0.043759s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device [0.045978s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.067522s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_rescue [0.095764s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_restore_boot_device_compat [0.045832s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_restore_boot_device_failure [0.045033s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test__get_auth_v1_write [0.076515s] ... ok
{2} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk_uefi [0.089371s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_restore_boot_device_noop [0.044601s] ... ok
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.TestBareDriver.test_class_variables [0.034975s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 [0.060450s] ... ok
{2} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.020334s] ... ok
{2} ironic.tests.unit.drivers.test_base.TestFirmwareInterface.test_update_with_wrapper [0.019531s] ... ok
{0} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_client [0.032761s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.074657s] ... ok
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_default_interfaces [0.045150s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test__get_context [0.052544s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.081428s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test__get_transport [0.058435s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector [0.082658s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.062114s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change [0.097358s] ... ok
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_raid [0.061277s] ... ok
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.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout [0.058571s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios [0.077124s] ... ok
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.test_snmp.SNMPClientTestCase.test__get_transport_err [0.063168s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_http_boot [0.117180s] ... ok
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_redfish_inspect [0.051349s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test_get [0.096846s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power [0.072824s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback [0.110788s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test_get_err_engine [0.072924s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_raid [0.061530s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.076584s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test_get_err_transport [0.065929s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change [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(
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_vendor [0.089339s] ... ok
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.test_snmp.SNMPClientTestCase.test_get_next [0.050890s] ... ok
{2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot [0.045010s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test_get_next_err_engine [0.067800s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor [0.091826s] ... ok
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.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.061895s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_set_boot_mode [0.044097s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test_get_next_err_transport [0.064838s] ... ok
{2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface [0.050152s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test_set [0.063613s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.091510s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.059672s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test_set_err_engine [0.054458s] ... ok
{2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.047599s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_set_boot_mode_unsupported [0.071253s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPClientTestCase.test_set_err_transport [0.052223s] ... ok
{2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties [0.056651s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_set_indicator_state [0.051537s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.044165s] ... ok
{0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.022044s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state_disk [0.044884s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.058683s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ironicexception [0.026815s] ... ok
{0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.020049s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state [0.044159s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.042526s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_nonironicexception [0.033072s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails [0.052057s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_shared_task_metadata [0.043558s] ... ok
{2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.070175s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect [0.043167s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_default_interfaces [0.042397s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.040138s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change [0.050286s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.038766s] ... ok
{2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.063885s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown [0.055250s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_none [0.059517s] ... ok
{2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.052118s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_supported_interfaces [0.047788s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.045781s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.052256s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.054667s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ilo.Ilo5HardwareTestCase.test_override_raid [0.055346s] ... ok
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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.043228s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.040461s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.087679s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.094108s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented [0.343521s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.057213s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_update_firmware [0.061402s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.087563s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_parse_sleep_range [0.074654s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_update_firmware_invalid_args [0.048293s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.053414s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_power_interface [0.041583s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_update_firmware_stage [0.053163s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.039966s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_sleep_one [0.074727s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_update_firmware_stage_both [0.061380s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_validate [0.040477s] ... ok
{2} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_sleep_range [0.092119s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_wait_for_boot_mode [0.058879s] ... ok
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_fake_hardware.FakeHardwareTestCase.test_sleep_zero [0.048945s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_wait_for_boot_mode_immediate [0.047328s] ... ok
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_irmc.IRMCHardwareTestCase.test_default_interfaces [0.048288s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_wait_for_secure_boot [0.062420s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_wait_for_secure_boot_immediate [0.045875s] ... ok
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_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.079523s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_management.RedfishManagementTestCase.test_wait_for_secure_boot_no_wait [0.045973s] ... ok
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_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.052836s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_redfish.RedfishHardwareTestCase.test_default_interfaces [0.421707s] ... ok
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_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.065630s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_snmp.SNMPHardwareTestCase.test_default_interfaces [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(
{0} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management [0.039892s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_bios.TestBIOSSettingObject.test_create [0.030866s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.027407s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.022931s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.021169s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.027596s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.025178s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.021834s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save [0.023671s] ... ok
{2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.284073s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.035166s] ... ok
{0} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.039119s] ... ok
{2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.067848s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_chassis.TestChassisObject.test_create [0.022375s] ... ok
{0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.020809s] ... ok
{2} ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.048190s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_chassis.TestChassisObject.test_get_by_id [0.023016s] ... ok
{0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.023247s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.033513s] ... ok
{0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.022735s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.035567s] ... ok
{0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.021562s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.022167s] ... ok
{0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.021929s] ... ok
{0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.022845s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.026853s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.023818s] ... ok
{0} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.032842s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.027502s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.037273s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label [0.024674s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.030162s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.021117s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.020572s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.020400s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.025003s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.017568s] ... ok
{2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.029575s] ... ok
{0} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.018752s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.026953s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.034883s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.025353s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.025243s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.024226s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.032890s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.023089s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.024109s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict [0.033243s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.025121s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive [0.024274s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.021888s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict [0.021519s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.022958s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.023116s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.023691s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.026127s] ... ok
{2} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.031164s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.029478s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.025022s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.022262s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_timeout [1.057932s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestNodeObject.test_get_bad_id_and_uuid [0.021561s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.044245s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.029359s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.028841s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.026587s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.023962s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.041777s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.034962s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system [0.118912s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.023502s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.027096s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.020935s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.023653s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems [0.061821s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.024448s] ... ok
{2} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.027640s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.029992s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_mac [0.044201s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface [0.029948s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry [0.065778s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_unknown_hosts [0.033748s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden [0.024650s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_allowlist [0.024610s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.021815s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error [0.063966s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields [0.032639s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_denylist [0.035876s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present [0.022831s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_mac [0.024511s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits [0.024003s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_unknown_hosts [0.026417s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry [0.077395s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.023428s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_allowlist [0.024408s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.023862s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_denylist [0.021002s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.022378s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_allowlist [0.021602s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found [0.070528s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.027414s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_denylist [0.042802s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.024529s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_change_state [0.029460s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.022850s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready [0.065550s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_deny_macs [0.029597s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.028555s] ... ok
{3} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error [0.058502s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.054974s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_no_macs [0.087327s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.039694s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent [0.078391s] ... ok
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.TestSync.test_only_new_macs [0.027543s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.026119s] ... ok
{2} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_removed_nodes [0.026111s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.024414s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.031565s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_disable_power_off [0.088851s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.033534s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.028605s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_get_power_state_fails [0.054003s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node.TestNodeObject.test_touch_provisioning [0.028058s] ... ok
{0} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.025858s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_no_power_on_support [0.051205s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_history.TestNodeHistoryObject.test_create [0.039258s] ... ok
{0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy [0.027889s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off [0.072674s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_history.TestNodeHistoryObject.test_get [0.026703s] ... ok
{0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id [0.025901s] ... ok
{0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid [0.025370s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off_failed [0.072416s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_history.TestNodeHistoryObject.test_list [0.024403s] ... ok
{0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id [0.025633s] ... ok
{0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none [0.025625s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_off_fails [0.084783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_node_inventory.TestNodeInventoryObject.test_create [0.025854s] ... ok
{0} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_destroy [0.033246s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_soft_poweroff_doesnt_complete [0.070724s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TearDownAgentTest.test_tear_down_agent_soft_poweroff_fails [0.097576s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TearDownAgentTest.test_tear_down_agent_soft_poweroff_race [0.087091s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObjectSerializer.test__process_object_api [0.407850s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.021211s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.019477s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.019852s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.023592s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.021525s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports [0.026698s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.022544s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.023229s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.023375s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.BootInstanceTest.test_boot_instance [0.425062s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObjectSerializer.test_object_serialization [0.029903s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.034458s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.BootInstanceTest.test_boot_instance_no_power_on [0.053492s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.029206s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.034062s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.030601s] ... ok
{0} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.019892s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing [0.107675s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.021861s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.036040s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.034729s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_after_reboot [0.097772s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestConvertToVersion.test_is_smartnic_supported_set [0.022257s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.020023s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.023578s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_reboot [0.063362s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.034094s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.023573s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_running [0.067272s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.020838s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing [0.019968s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set [0.023725s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.061861s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestConvertToVersion.test_name_unsupported_missing [0.025216s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default [0.019878s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default [0.020242s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.057479s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestConvertToVersion.test_name_unsupported_set_remove [0.022340s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.028610s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.022456s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.066517s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestConvertToVersion.test_physnet_unsupported_missing [0.023154s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.022008s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run [0.054283s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.021142s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.020645s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.020409s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run [0.056852s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.019880s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.023353s] ... ok
{0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.020942s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing [0.058976s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroup.TestPortgroupObject.test_create [0.022222s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.019968s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_servicing_fails [0.053840s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroup.TestPortgroupObject.test_get_by_address [0.022480s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.023379s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.020657s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.060231s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroup.TestPortgroupObject.test_get_by_uuid [0.020432s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.020976s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_deploy_fails [0.049267s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_portgroup.TestPortgroupObject.test_list_by_node_id [0.022102s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.020854s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.026262s] ... ok
{0} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.022364s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.091460s] ... ok
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.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.038102s] ... ok
{0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_no_update [0.020653s] ... ok
{0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_allow [0.022678s] ... ok
{0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_deny [0.020621s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.232372s] ... ok
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.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.117342s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.115277s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling [0.057694s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.093554s] ... ok
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.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info [0.096589s] ... ok
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.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_when_appropriate [0.158112s] ... ok
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.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue [0.053529s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.056156s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.HeartbeatMixinTest.test_heartbeat_resume_clean [0.083136s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.123042s] ... ok
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.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_service [0.062567s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.HeartbeatMixinTest.test_heartbeat_with_reservation [0.073132s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook [0.032642s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook_no_hook_registered [0.037084s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot [0.063862s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.PostStepHooksTest.test__post_step_reboot_deploy [0.054915s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.PostStepHooksTest.test__post_step_reboot_fail [0.042868s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.PostStepHooksTest.test__post_step_reboot_fail_deploy [0.044228s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.PostStepHooksTest.test__post_step_reboot_fail_servicing [0.047233s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.PostStepHooksTest.test__post_step_reboot_pregenerated_token [0.055280s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_base.PostStepHooksTest.test_post_clean_step_hook [0.030104s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.022903s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client [0.019832s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.021516s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy [0.020088s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict [0.020030s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded [0.019978s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.024165s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running [0.021870s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running [0.021643s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running [0.021516s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running [0.320817s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.023078s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.030009s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll [0.025192s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify [0.022578s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config [0.031533s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable [0.021665s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info [0.042784s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal [0.024090s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file [0.020783s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body [0.019997s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url [0.020126s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.019333s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header [0.022574s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step [0.021126s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_service_step [0.020067s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.022410s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.020880s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback [0.021849s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted [0.022321s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps [0.020600s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.019609s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries [0.019453s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries [0.021827s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify [0.021149s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps [0.032774s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps_older_client [0.021586s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader [0.020636s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep [0.020144s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.019811s] ... ok
{3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.019225s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.026060s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.025467s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.025138s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.023578s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.022502s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.025002s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.023805s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.025101s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.029556s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.028939s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.830486s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.031794s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.035047s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default [0.051386s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname [0.045345s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 [0.043570s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 [0.045532s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports [0.031790s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry [0.028273s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success [0.028497s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.027555s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.024381s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.023094s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.024326s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.022261s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range [0.023784s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.022717s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.024883s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.041216s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.033005s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.041378s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.035489s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.037011s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.042246s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.052796s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.042830s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.044600s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.035364s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.036519s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.045930s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.040422s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.033168s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.039597s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.037427s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.025666s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.299133s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.025768s] ... ok
{3} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range [0.025972s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning [0.033443s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.033096s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.043239s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.039612s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token [0.039760s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_polling_if_not_set [0.042701s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.038279s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_one [0.044366s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.026259s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.026836s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.028430s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.027801s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.027235s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.026014s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.027931s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.028389s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.026374s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.037170s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy [0.026686s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.026971s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda [0.028947s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.026876s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.030557s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.032068s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.026493s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.037872s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.040615s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.026658s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.027479s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.021120s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.019707s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.020782s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.020406s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.020271s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.029078s] ... ok
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw [0.072254s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw_keeps_md5 [0.062683s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image [0.058783s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.066636s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 [0.063785s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image [0.076071s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_already_raw [0.057799s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo [0.073615s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo [0.063620s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_md5_not_permitted [0.062870s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.062558s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_image [0.064020s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha256 [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(
{3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha512 [0.057484s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_image_via_http_verified [0.057214s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_graphical_console.TestGraphicalConsole.test__expire_console_sessions [0.047984s] ... ok
{3} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_start_console [0.038768s] ... ok
{3} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_stop_console [0.043820s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.030396s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs [0.030492s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail [0.298349s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.029861s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.027916s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.022334s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.022685s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.027595s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.025290s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.021227s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.022592s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.022818s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.020717s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.020064s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.019230s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.030011s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.026640s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.023973s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.029055s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.028605s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.025717s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_disable_validation [0.020975s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low [0.021388s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.025515s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.026110s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.020561s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.019219s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.019274s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.023238s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.020038s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.020847s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.019269s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.031239s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.021502s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.022277s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img [0.020668s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img_not_cached [0.019949s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.019884s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test__download_image_iso [0.021684s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test_fetch_image_iso [0.021665s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config [0.025546s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_redfish_kernel_param_config [0.027961s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param [0.027484s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found [0.029065s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios [0.045712s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso [0.037847s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info [0.037545s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode [0.040744s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params [0.038133s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params [0.043654s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults [0.038666s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info [0.036926s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios [0.060403s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios [0.038427s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning [0.039317s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi [0.039689s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi [0.037039s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_with_node_external_http_url [0.042713s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image [0.037757s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image [0.037393s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso [0.036390s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied [0.035912s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image [0.036809s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url [0.037256s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url [0.042791s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso [0.034880s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso [0.332401s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix [0.035208s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip [0.038545s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data [0.037364s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls [0.050066s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image [0.034832s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file [0.036068s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix [0.036684s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image [0.040394s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url [0.038958s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url [0.035446s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip [0.033138s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image [0.033821s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_custom_cache [0.034468s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_file [0.039708s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_from_swift [0.035516s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local [0.039239s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local_external_http_url [0.040626s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_noop [0.034608s] ... ok
{3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_schema [0.032093s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.049960s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors [0.027262s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list [0.025341s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element [0.026565s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first [0.027055s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.031269s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite [0.036642s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.036251s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.032849s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.028660s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.028298s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.028224s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.032153s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.030526s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite [0.029650s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.030169s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.044648s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.034530s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.043991s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries [0.037878s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple [0.047650s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.028793s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.034912s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout [0.041560s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.030169s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.029047s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.047076s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args [0.031326s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.028070s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.033427s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.034221s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.026948s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite [0.026913s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 [0.031123s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number [0.029916s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.028514s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.026458s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.026374s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.037630s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.033841s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated [0.030611s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified [0.028926s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.033653s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.036319s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.029550s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.028955s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.036951s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.031337s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.281506s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.029566s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.028718s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [2.048113s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error [0.027424s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.029631s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.039760s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.033998s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_caller_exception [0.027494s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_str_password [0.026100s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_known_exception [0.044380s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_unknown_exception [0.027852s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_with_numeric_password [0.028031s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_write_exception [0.031659s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__set_and_wait_explicit_reboot [1.059293s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off [1.056804s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [2.065031s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.036077s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.053219s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.030225s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.035788s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.031787s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.032475s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.030437s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.037468s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.039603s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.034469s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.036828s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.034807s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.036572s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.031466s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.032195s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootBaseUtils.test__node_set_boot_device_for_network_boot [0.056448s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_clean_up_instance [0.047584s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_clean_up_ramdisk [0.060137s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.052436s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_ensure_boot_interface_is_not_http_enabled [0.043243s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.044367s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance [0.060842s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_instance_active [0.063746s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.077015s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios [0.104131s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk [0.081609s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_instance_ramdisk [0.067852s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_instance_ramdisk_bios [0.074562s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg [0.079650s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_instance_with_fallback [0.073321s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk [0.077619s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.366297s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.066060s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.067837s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.094858s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.084689s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.104483s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.089710s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.073809s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.078576s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.080827s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.080933s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.090879s] ... ok
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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.096178s] ... ok
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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.113167s] ... ok
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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.074954s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.042003s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.037838s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.042828s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.042986s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.057947s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection [0.047380s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.054053s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootTestCase.test_validate_no_image_source_for_local_boot [0.043622s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.041865s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso [0.045720s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source [0.050070s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.051086s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.050199s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.065419s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_get_properties [0.036445s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance [0.056142s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.055837s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.082014s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_bios [0.409318s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.054790s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.063750s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_missing [0.063495s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.072744s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.072813s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_cleaning [0.075493s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_conflicting_boot_modes [0.078609s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_conflicting_boot_modes_set_unsupported [0.075775s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.070400s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.069277s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_not_called [0.073887s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.067002s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ironic [0.078347s] ... ok
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_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.077123s] ... ok
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_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.081637s] ... ok
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_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi [0.068517s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_fail_missing_deploy_kernel [0.048288s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.044250s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.041743s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.039397s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good_whole_disk_image [0.040509s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection [0.046532s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.087480s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_kickstart_fail_http_url_not_set [0.066331s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_kickstart_missing_stage2_id [0.070779s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.044539s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local [0.068804s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_skip_check_write_image_false [0.050475s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.066416s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.055943s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.047554s] ... ok
{3} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.046514s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.057488s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.iPXEBootRetryTestCase.test_check_boot_timeouts [0.045946s] ... ok
{3} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy [0.103086s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive [0.433579s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_deploy_with_smartnic_port [0.153728s] ... ok
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_ramdisk.RamdiskDeployTestCase.test_execute_clean_step [0.045579s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_get_clean_steps [0.054054s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps [0.051835s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_prepare [0.100902s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_prepare_active [0.058523s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning [0.054493s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_prepare_instance_ramdisk [0.105248s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_prepare_unrescuing [0.050216s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning [0.055029s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_validate [0.048938s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate [0.045987s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_validate_interface_mismatch [0.059189s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso [0.050022s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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 [0.028742s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.028535s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.025468s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.024697s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.028436s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.022371s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.020987s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.024877s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.024403s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.021332s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.039101s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.037792s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.025211s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.021382s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.024886s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.020213s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.020116s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.020275s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.021909s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 [0.019918s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.020236s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.024044s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 [0.020708s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 [0.025195s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.023838s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.020980s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.019810s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.021786s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.020957s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.020269s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.021727s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.021266s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.019937s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.019607s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.019561s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.022507s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.019730s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.030078s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.025019s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.020441s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.020865s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.020753s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.022320s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu [0.021528s] ... ok
{3} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.020692s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.018749s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.017923s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.019888s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.017986s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.018230s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.017978s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.018132s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.019744s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.018830s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.019567s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.023025s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.020313s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.021236s] ... ok
{3} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.020141s] ... ok
{3} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_all_args [0.018723s] ... ok
{3} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.018858s] ... ok
{3} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.020297s] ... ok
{3} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.020471s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.018865s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.018674s] ... ok
{3} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.296376s] ... ok
{3} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.029452s] ... ok
{3} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.043262s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.061610s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UtilsTestCase.test_add_node_capability [0.052143s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UtilsTestCase.test_add_node_capability_append [0.047325s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UtilsTestCase.test_add_node_capability_append_duplicate [0.053266s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UtilsTestCase.test_capabilities_not_string [0.032256s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.027886s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.031464s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.027057s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.025418s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.047057s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent [0.053918s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UtilsTestCase.test_force_persistent_boot_false [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(
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true [0.051979s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UtilsTestCase.test_get_node_capability [0.026223s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.029881s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.049899s] ... ok
Captured stderr:
~~~~~~~~~~~~~~~~
    /usr/lib/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.UtilsTestCase.test_normalize_mac_string [0.028624s] ... ok
{3} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.022907s] ... ok
{3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing [0.021371s] ... ok
{3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set [0.022176s] ... ok
{3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing [0.024164s] ... ok
{3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.021124s] ... ok
{3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.020235s] ... ok
{3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove [0.020412s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.025414s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.023223s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.023899s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.023276s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.025490s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.022794s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.022519s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.024239s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.032248s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.024540s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.021452s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.021752s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.026709s] ... ok
{3} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.023471s] ... ok
{3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.022615s] ... ok
{3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.021008s] ... ok
{3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.022101s] ... ok
{3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.022857s] ... ok
{3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.021538s] ... ok
{3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.025320s] ... ok
{3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.025853s] ... ok
{3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.024972s] ... ok
{3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.023521s] ... ok
{3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create [0.039496s] ... ok
{3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node [0.034475s] ... ok
{3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy [0.044316s] ... ok
{3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node [0.042742s] ... ok
{3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid [0.029197s] ... ok
{3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid [0.028099s] ... ok
{3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found [0.033304s] ... ok
{3} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh [0.034150s] ... ok
{3} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.020137s] ... ok
{3} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.018404s] ... ok
{3} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.018446s] ... ok
{3} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.018281s] ... ok
{3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_create [0.024082s] ... ok
{3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component [0.020754s] ... ok
{3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_does_not_exist [0.021024s] ... ok
{3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_node_does_not_exist [0.022726s] ... ok
{3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_save [0.024856s] ... ok
{3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_create_and_update [0.026659s] ... ok
{3} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_nochange [0.027675s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload [0.024787s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload [0.025941s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.020738s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits [0.024297s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.023322s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload [0.024960s] ... ok
{3} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.021477s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.025750s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.024843s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.022087s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.283303s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.026165s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.019898s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets [0.020426s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets [0.020317s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected [0.020484s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.038603s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.025545s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.023055s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.026199s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.023996s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.020249s] ... ok
{3} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.018346s] ... ok
{3} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.028692s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.024506s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.020081s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.022991s] ... ok
{3} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.022120s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.021076s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.020703s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.021472s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.024923s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.022991s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.022026s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.020496s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.019801s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.025017s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.024231s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.021249s] ... ok
{3} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.026803s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.021687s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.021483s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.022757s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.021260s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.020356s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.021104s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.022262s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.020068s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.020172s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.019390s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.020233s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.021066s] ... ok
{3} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.028156s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write [0.022940s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_custom_ioerror [0.021851s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block [0.023998s] ... ok
{3} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block_too_many_times [0.022832s] ... ok
{3} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.018505s] ... ok
{3} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.018183s] ... ok
{3} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.017741s] ... ok
Exception ignored in: <function _TemporaryFileCloser.__del__ at 0x7f20775cc160>
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/tmpam7dcjzc/tmpki3k_2_s'
======
Totals
======
Ran: 10065 tests in 433.8331 sec.
 - Passed: 10020
 - Skipped: 45
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 0
Sum of execute time for each test: 1533.4547 sec.
==============
Worker Balance
==============
 - Worker 0 (2633 tests) => 0:06:38.682073
 - Worker 1 (1944 tests) => 0:05:29.553517
 - Worker 2 (2572 tests) => 0:06:38.636073
 - Worker 3 (2916 tests) => 0:07:11.394347
Test id                                                                                                                        Runtime (s)
-----------------------------------------------------------------------------------------------------------------------------  -----------
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout                              9.119
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout                                     9.117
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state                         9.100
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state                        9.094
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state                               9.094
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state                              9.089
ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout                               9.071
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on  4.215
ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states                      4.065
ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok          3.926
___________________________________ summary ____________________________________
  py39: commands succeeded
  congratulations :)
+ RPM_EC=0
++ jobs -p
+ exit 0
Processing files: openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.noarch
Provides: openstack-ironic = 1:29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.noarch
warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64/usr/lib/python3.9/site-packages/ironic_tests.egg_info
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.5tSlrG
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.x86_64/usr/share/doc/openstack-ironic-common
+ cp -pr README.rst /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.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.nC2Ko8
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.x86_64/usr/share/licenses/openstack-ironic-common
+ cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9 openstack-ironic-common = 1:29.1.0-0.20250604214718.1c3dde2.el9 python3.9dist(ironic) = 29.1~~dev159 python3dist(ironic) = 29.1~~dev159
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.20250604214718.1c3dde2.el9.noarch
Provides: openstack-ironic-api = 1:29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.noarch
Provides: openstack-ironic-conductor = 1:29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.noarch
Provides: openstack-ironic-novncproxy = 1:29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.noarch
Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.zXE9tz
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server
+ cp -pr LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9 openstack-ironic-dnsmasq-tftp-server = 1:29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.noarch
Provides: openstack-ironic-pxe-filter = 1:29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9.noarch
Provides: python-ironic-tests = 1:29.1.0-0.20250604214718.1c3dde2.el9 python3-ironic-tests = 1:29.1.0-0.20250604214718.1c3dde2.el9 python3.9-ironic-tests = 1:29.1.0-0.20250604214718.1c3dde2.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.20250604214718.1c3dde2.el9
Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64
Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.src.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-api-29.1.0-0.20250604214718.1c3dde2.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-novncproxy-29.1.0-0.20250604214718.1c3dde2.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-dnsmasq-tftp-server-29.1.0-0.20250604214718.1c3dde2.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-pxe-filter-29.1.0-0.20250604214718.1c3dde2.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-conductor-29.1.0-0.20250604214718.1c3dde2.el9.noarch.rpm
Wrote: /builddir/build/RPMS/openstack-ironic-common-29.1.0-0.20250604214718.1c3dde2.el9.noarch.rpm
Wrote: /builddir/build/RPMS/python3-ironic-tests-29.1.0-0.20250604214718.1c3dde2.el9.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.xA0GJ1
+ umask 022
+ cd /builddir/build/BUILD
+ cd ironic-29.1.0.dev159
+ /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250604214718.1c3dde2.el9.x86_64
+ RPM_EC=0
++ jobs -p
+ exit 0
Child return code was: 0